Вступить в клуб →
лёгкаявопросREST API и валидация данных

В теле запроса нет обязательного поля схемы: что увидит клиент

Эндпоинт описан схемой запроса:

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 с указанием поля

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела