В теле запроса нет обязательного поля схемы: что увидит клиент
Эндпоинт описан схемой запроса:
class OrderIn(BaseModel):
user_id: int
items: list[int]
@app.post("/orders")
async def create_order(payload: OrderIn):
return await service.create(payload)
Клиент прислал тело {"items": [1, 2]} — поля user_id нет.
Что произойдёт?
- Обработчик выполнится, в payload.user_id окажется None, ошибка всплывёт глубже по коду
- Обработчик выполнится и упадёт внутри на обращении к user_id, клиент получит 500
- Обработчик выполнится, user_id получит 0 — значение по умолчанию для типа int
- Валидация отклонит запрос до входа в обработчик, клиент получит 4xx с указанием поля
