Обработать HTTP-ответ#

Операция объявляет все ответы, которые входят в контракт внешнего API. Обычный вызов возвращает типизированное значение или выбрасывает ожидаемое исключение. Неизвестный статус, неверный формат и тело, которое не проходит проверку модели, остаются отдельными ошибками контракта.

Выберите задачу#

Что отвечает API

Что объявить

Руководство

один успешный JSON

HttpOperation[Model]

Получить типизированное значение

несколько успешных статусов или форм

success=

Получить типизированное значение

ожидаемый отказ

errors= и ApiError[Problem]

Разобрать ожидаемую ошибку

HTML с CSS- или XPath-селекторами

модель документа

Извлечь данные из HTML

переход, адрес которого сообщает исход

Location на поле модели

Прочитать исход из адреса перехода

200 на всё, исход в поле тела

теги Const, OneOf, Not на поле модели

Разобрать ответ, где исход лежит в теле

with_response(...) сохраняет значение вместе со статусом, заголовками и исходным ответом обработчика. Обычный вызов отдаёт только предметный результат.

Как SDK выбирает случай#

Сначала SDK сравнивает статус, тип содержимого и условие when. Затем выбранное представление читает тело и строит модель. Более узкий случай выигрывает: точный статус важнее диапазона, явный тип содержимого важнее общего, а случай с условием важнее случая без условия.

Если два одинаково конкретных случая подходят одновременно, SDK возвращает AmbiguousResponseError. Если не подошёл ни один, вызывающий получает UnexpectedResponseError. Неверное тело выбранного случая приводит к MalformedResponseError.

Дальше#