Как добавить описание в FastApi с использованием модели Pydantic [дубликат]Python

Программы на Python
Anonymous
Как добавить описание в FastApi с использованием модели Pydantic [дубликат]

Сообщение Anonymous »

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

Код: Выделить всё

from fastapi import Query, HTTPException

class PaginatedParams(BaseModel):
page: Annotated[int, Query(1, description='Page number')]
size: Annotated[int, Query(10, description='Number of records per page')]

def validate(self):
if self.page < 1:
raise HTTPException(
status_code=HTTPStatus.BAD_REQUEST,
detail="Page number must be greater than 0",
)
if self.size < 1:
raise HTTPException(
status_code=HTTPStatus.BAD_REQUEST,
detail="Size number must be greater than 0",
)
Затем я добавил свой класс в маршрутизатор

Код: Выделить всё

from fastapi import APIRouter, Depends, HTTPException, Query

@router.get(
'/search',
response_model=dict[str, list[FilmsListApi] | int | str],
description='Search films by its title.',
)
async def search_films(
params: PaginatedParams = Depends(PaginatedParams),
query: str = Query('', description='The keywords for searching films'),
film_service: FilmService = Depends(get_film_service),
) -> dict[str, list[FilmsListApi] | int | str]:
А я ожидал, что по адресу api/openapi описание параметров будет отображаться так же, как и запрос, но этого не происходит
введите здесь описание изображения
Я пробовал менять код разными способами, но ничего не добился. Я думаю, что проблема может заключаться в каком-то месте, о котором я не знаю.

Подробнее здесь: https://stackoverflow.com/questions/777 ... ntic-model

Вернуться в «Python»