DevPrep

Все темы › Сетевое программирование и API

Как спроектировать сетевой слой на URLSession: Endpoint, клиент, ошибки?

Middle PRO

Суть

Хороший сетевой слой разделяет три ответственности: описание запроса (Endpoint — значение без логики выполнения), клиент, который превращает описание в URLRequest, выполняет его и валидирует ответ, и типизированные ошибки, по которым UI решает, что показать. Сквозные вещи — авторизация, логирование, общие заголовки — живут в интерцепторах, а не копируются в каждый эндпоинт.

Критерий качества: новый запрос добавляется одной декларацией, а клиент тестируется без сети и без изменения продового кода.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store