алгоритм примерно такой
1. Подключаю okHttp, Retrofit и сериализатор (Gson, Moshi)
2. Описываю все ендпоинты в коде в виде функций интерфейса MySuperApi, размечаю их GET, POST, etc..
3. Создаю где-то экземпляр Retrofit, который билдит мне реализацию интерфейса MySuperApi
4. Дёргаю методы MySuperApi, наслаждаюсь.
Ребят, подскажите пожалуйста или ткните в актуальную статью, как мне на swift построить правильно сетевое взаимодействие?
Привет, тут есть несколько вариантов взаимодействия, берешь enum, имплементируешь в нем протокол URLRequestConvertible и реализуешь в нем варианты кейсов для конструирования запроса, на выходе этот enum тебе вернет URLRequest. Это почти та же самая аналогия с ретрофитовыми интерфейсами, только вместо протокола и абстрактных его функций ты берешь enum и его кейсы. А дальше ты либо используешь Alamofire, либо URLSession. Для парсинга json используешь имеющиеся в свифте протоколы Decodable, Encodable. Для получения результата используешь либо замыкание, некий completionHandler, либо если у тебя ios 13+ то Combine, его и Alamofire и URLSession поддерживают. Вот пример: https://pastebin.com/fgj5A4wF - так выглядит несколько запросов разных, лежащих в одном enum Так выглядит их вызов, к примеру во viewModel с использованием Combine и Alamofire https://pastebin.com/8G35E6km
Воу, спасибо та такой развёрнутый ответ. Да, буду пилить на 13+, комбайн обязательно затащу, ибо не хочу тянуть rx. Спасибо за ссылки, смёржу их с просмотром лекции и буду щупать =)
а, ну вот, заведешь себе final class ViewModel: ObservableObject и в него воткнешь функцию обращения подписки на publishDecodable. Модели сетевые не забудь на Вусщвфиду gjlgbcfnm
Пока сильно круто =) Я начал с сетевого слоя, вначале разберусь как запросы ходят и в модель разбираются, далее буду уже поднимать слои, мапперы и добираться до юай. Такое экстремальное погружение 😳
Понимаю, после андроида слегка непривычно будет, но потом сам аналогии будешь видеть, я сам так погружение делал)
Обсуждают сегодня