Предположим, что REST API определяет метод POST для ресурса / foos для создания нового Foo. При создании Foo имя Foo является входным параметром (присутствует в теле запроса). Когда сервер создает Foo, он присваивает ему идентификатор. Этот идентификатор возвращается вместе с именем в ответе REST. Ищу что-то похожее на readOnly в OpenAPI.
Входной JSON должен выглядеть так:
{
"name": "bar"
}
Выходной JSON должен выглядеть так:
{
"id": 123,
"name": "bar"
}
Есть ли способ повторно использовать ту же пидантическую модель? Или нужно использовать две разные модели?
class FooIn(BaseModel):
name: str
class Foo(BaseModel):
id: int
name: str
Я не могу найти упоминания «только для чтения», «только для чтения» или «только для чтения» в документации pydantic или в коде класса Field.
Погуглив, я нашел сообщение, в котором упоминается
id: int = Schema(..., readonly=True)
Но, похоже, это не повлияло на мой вариант использования.