Обработать HTTP-ответ#
Операция объявляет все ответы, которые входят в контракт внешнего API. Обычный вызов возвращает типизированное значение или выбрасывает ожидаемое исключение. Неизвестный статус, неверный формат и тело, которое не проходит проверку модели, остаются отдельными ошибками контракта.
Выберите задачу#
Что отвечает API |
Что объявить |
Руководство |
|---|---|---|
один успешный JSON |
|
|
несколько успешных статусов или форм |
|
|
ожидаемый отказ |
|
|
HTML с CSS- или XPath-селекторами |
модель документа |
|
переход, адрес которого сообщает исход |
|
|
|
теги |
with_response(...) сохраняет значение вместе со статусом, заголовками и исходным ответом
обработчика. Обычный вызов отдаёт только предметный результат.
Как SDK выбирает случай#
Сначала SDK сравнивает статус, тип содержимого и условие when. Затем выбранное представление
читает тело и строит модель. Более узкий случай выигрывает: точный статус важнее диапазона,
явный тип содержимого важнее общего, а случай с условием важнее случая без условия.
Если два одинаково конкретных случая подходят одновременно, SDK возвращает
AmbiguousResponseError. Если не подошёл ни один, вызывающий получает
UnexpectedResponseError. Неверное тело выбранного случая приводит к
MalformedResponseError.