// Сервис, который отправляет запросы (get/post), url, формирование запроса в зависимости от семантики (decode/encode)

Сетевой сервис должен отдельно формировать запрос, выполнять транспорт и декодировать ответ. GET/POST, query и body задаются явным описанием endpoint.

Короткий ответ

Что ответить на собеседовании

Сетевой сервис должен отдельно формировать запрос, выполнять транспорт и декодировать ответ. GET/POST, query и body задаются явным описанием endpoint.

Подробный разбор

Ответ с пояснениями

Сетевой сервис должен отдельно формировать запрос, выполнять транспорт и декодировать ответ. GET/POST, query и body задаются явным описанием endpoint.

URL собирают через URLComponents, параметры — URLQueryItem; JSON-body кодируют через Encodable. После URLSession проверяют HTTP-статус и только затем декодируют ожидаемый Decodable-тип. Для пустого ответа нужен отдельный путь, а не попытка декодировать JSON из нуля байтов.

Инъекция URLSession и декодера позволяет изолированные проверки без реального сервера. Обрабатывайте отмену, таймауты и ошибки кодирования; не записывайте токены в логи. Автоматические retries допустимы лишь с учётом идемпотентности операции, особенно для POST.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее