По порядку Middle Сеть, Codable и хранение обновлено
Этапы сетевого запроса в клиенте
Вопрос
Расставьте этапы обработки запроса в типичном сетевом слое.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Преобразовать ошибки в доменные и вернуть результат
- 2Выполнить запрос через
URLSession - 3Добавить заголовок авторизации с access-токеном
- 4Декодировать тело в модель
- 5Собрать
URLRequest: URL, метод, тело, заголовки - 6Проверить
HTTPURLResponse.statusCode, при 401 обновить токен и повторить
Показать ответ и разбор
Коротко
Авторизацию и повтор после обновления токена удобно держать в одном месте (обёртка над сессией), чтобы экраны о них не знали. Декодирование идёт только после проверки статуса.
Правильный порядок
- 1Собрать
URLRequest: URL, метод, тело, заголовки - 2Добавить заголовок авторизации с access-токеном
- 3Выполнить запрос через
URLSession - 4Проверить
HTTPURLResponse.statusCode, при 401 обновить токен и повторить - 5Декодировать тело в модель
- 6Преобразовать ошибки в доменные и вернуть результат
Разбор
Авторизацию и повтор после обновления токена удобно держать в одном месте (обёртка над сессией), чтобы экраны о них не знали. Декодирование идёт только после проверки статуса.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.