Продолжим знакомиться с моделями и дорабатывать наше приложение. Я думаю многие заметили, что при добавлении новой записи мы видели следующий формат внутри тела запроса:
curl -X 'POST' \
'http://127.0.0.1:8000/message' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": 0,
"text": "string"
}'
Но так как у нас поле id заполняется динамически, мы можем убрать это поле из примера запроса в документации. Для этого необходимо в параметры модели Pydantic добавить конфигурацию, которая устанавливает дефолтную схему для этой модели:
class Message(BaseModel):
id: int = None
text: str
model_config = {
"json_schema_extra": {
"examples":
[
{
"text": "Simple message",
}
]
}
}
Все параметры модели Pydantic вы можете посмотреть в официальной документации.
Запустим приложение, и попробуем отправить POST запрос. Мы увидим что теперь в разделе Example Value у нас находится следующая схема:
{
"text": "Simple message"
}
Отправим несколько запросов
Как мы видим, внутри у нас ID записей заполняется динамически, но в телах запроса его нет.
curl -X 'POST' \
'http://127.0.0.1:8000/message' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"text": "Simple message"
}'
Отправив несколько POST запросов, теперь через GET запрос получим все записи.
В следующем шаге переделаем остальные функции, используя модели.