FastAPI: изменение кода ответа при сохранении автоматической проверки

В приведенном ниже коде я создал почтовый маршрут, который отправляет идентичный ответ независимо от ввода.

Входные и выходные данные автоматически проверяются, потому что я ссылался на pydantic BaseModel в соответствующих местах.

В вашей документации есть примеры того, как изменить код ответа.

Два вопроса:

  • Как бы я мог условно изменить код ответа здесь, сохраняя при этом проверку ответа (который я помещаю в декоратор)?

  • Что-нибудь, что я мог сделать, чтобы убрать мой код? Каков предпочтительный способ предоставления значений по умолчанию для ввода? Можете ли вы привести пример?

from pydantic import BaseModel
from pydantic import UrlStr, IPvAnyAddress

...

class Bar(BaseModel):
    url = UrlStr
    ip = IPvAnyAddress


@app.post('/foo', response_model=Bar)
async def foo_endpoint(request: Bar):
    response = Bar(**{ip='111.111.111.111', url='www.google.com'})

0 ответов

Что вы имеете в виду под "условным изменением кода ответа", можете ли вы привести пример?

Что касается вашего второго вопроса, установка значений по умолчанию для ваших моделей Pydantic;

class FooBase(BarModel):
    attribute_x: Optional[str] = None
    attribute_y: Optional[bool] = False
    attribute_z: Optional[str] = None
Другие вопросы по тегам