РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
51 of 307 menu

Параметр responses

Параметр responses применяется к декораторам маршрутов FastAPI, таким как get, post, put и другим. Он позволяет описать дополнительные HTTP-ответы, которые маршрут может возвращать помимо основного. Значением параметра является словарь, где ключ - это код статуса, а значение - словарь с описанием ответа: description, model, content и другими полями.

Синтаксис

@app.get(path, responses={status_code: {...}})

Пример

Давайте опишем дополнительный ответ со статусом 404:

from fastapi import FastAPI app = FastAPI() @app.get('/user', responses={404: {'description': 'User not found'}}) def get_user(): return {'name': 'abcde'}

Теперь в документации OpenAPI у маршрута /user появится описание ответа 404 с текстом 'User not found'.

Пример

Давайте укажем модель ответа для дополнительного статуса:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class ErrorModel(BaseModel): detail: str @app.get('/article', responses={400: {'model': ErrorModel, 'description': 'Invalid request'}}) def get_article(): return {'title': 'hello'}

Модель ErrorModel будет использована для схемы ответа со статусом 400.

Пример

Давайте добавим пример тела ответа через ключ content:

from fastapi import FastAPI app = FastAPI() @app.get( '/items', responses={ 500: { 'description': 'Internal error', 'content': { 'application/json': { 'example': {'detail': 'server error'} } } } } ) def get_items(): return ['a', 'b', 'c', 'd', 'e']

В документации для статуса 500 появится пример тела ответа в формате JSON.

Смотрите также

  • параметр response_model,
    который задаёт основную модель ответа маршрута
  • параметр status_code,
    который задаёт основной код статуса ответа
  • метод get,
    который регистрирует обработчик GET-запроса
  • метод api_route,
    который вешает обработчик на произвольный HTTP-метод
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить