Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
в случае какой-то ошибки с запросом вы увидите только что «что-то не работает»Все что может пойти не так на мой взгляд охвачено, это:
Про использование структур вместо классов промолчуА вот чем вам структуры не угодили я не понимаю. Их правильно использовать для Codable, потому что если вы будете использовать классы, то наверняка из-за наследования, а Codable не умеет в наследование и будут ошибки, т.к. часть переменных из суперклассов потеряются, если вы не пропишете кастомный encoder/decoder вручную. Попробуйте в playground сделать JSONEncode класса с наследованием, он выведет вам только значения из суперкласса. Или попробуйте используйте Mirror для чтения переменных класса, он выведет вам только все из первого класса, а из суперкласса нет. Чтобы никто с этим не сталкивался дан пример со структурами.
предполагаю, что логика на сервере может поменяться в любой моментЛогика на сервере не может поменяться в любой момент, это уже будет другая версия API.
В случае со структурами вы обязаны написать километровый init с кучей входных параметров, чтобы инициализировать все поля?Актуально только для структур для запросов, для ответов никакие инициализаторы не нужны. Кстати с классом вы тоже будете писать километровый init чтобы инициализиировать все поля если вы не расставили `!` у каждого поля конечно же (а force unwrapping это кстати зло)
получите рефакторинг всех конструкторовЗвучит совсем не страшно, так как делать это придется очень редко и это не так уж и сложно.
Планируете поддержку ReactiveCocoa и RxSwift?
Codable для API запросов и как навести в коде порядок