Клиент прислал поле с опечаткой, получил 200, а email так и не обновился
class ProfileUpdate(BaseModel):
name: str | None = None
email: EmailStr | None = None
@app.patch("/profile")
async def update_profile(data: ProfileUpdate): ...
Мобильное приложение отправляет {"emial": "new@x.ru"}. Ответ — 200 OK, но email остался старым. Разработчики приложения неделю искали баг у себя. Что стоит сделать на стороне API?
- Запретить лишние поля в модели — тогда опечатка вернёт 422
- Сделать email обязательным полем модели обновления профиля
- Возвращать 204 вместо 200, чтобы клиент перечитал профиль
- Логировать тело каждого запроса на уровне INFO
