3.2 Модели Pydantic и их валидация
7 из 7 шагов пройдено
5 из 5 баллов  получено

Продолжим знакомиться с моделями и дорабатывать наше приложение. Я думаю многие заметили, что при добавлении новой записи мы видели следующий формат внутри тела запроса:

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 запрос получим все записи.

В следующем шаге переделаем остальные функции, используя модели.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.