По порядку Middle Сеть, Codable и хранение обновлено

Этапы сетевого запроса в клиенте

Вопрос

Расставьте этапы обработки запроса в типичном сетевом слое.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Преобразовать ошибки в доменные и вернуть результат
  2. 2
    Выполнить запрос через URLSession
  3. 3
    Добавить заголовок авторизации с access-токеном
  4. 4
    Декодировать тело в модель
  5. 5
    Собрать URLRequest: URL, метод, тело, заголовки
  6. 6
    Проверить HTTPURLResponse.statusCode, при 401 обновить токен и повторить
Показать ответ и разбор

Коротко

Авторизацию и повтор после обновления токена удобно держать в одном месте (обёртка над сессией), чтобы экраны о них не знали. Декодирование идёт только после проверки статуса.

Правильный порядок

  1. 1
    Собрать URLRequest: URL, метод, тело, заголовки
  2. 2
    Добавить заголовок авторизации с access-токеном
  3. 3
    Выполнить запрос через URLSession
  4. 4
    Проверить HTTPURLResponse.statusCode, при 401 обновить токен и повторить
  5. 5
    Декодировать тело в модель
  6. 6
    Преобразовать ошибки в доменные и вернуть результат

Разбор

Авторизацию и повтор после обновления токена удобно держать в одном месте (обёртка над сессией), чтобы экраны о них не знали. Декодирование идёт только после проверки статуса.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.