Как изменить вывод ответа списка на основе параметра запроса в FastAPI?Python

Программы на Python
Ответить
Anonymous
 Как изменить вывод ответа списка на основе параметра запроса в FastAPI?

Сообщение Anonymous »

Я пытаюсь изменить содержимое представления списка в FastAPI в зависимости от параметра запроса. Поскольку формат определяется pydantic-моделью, как его настроить (или использовать альтернативную модель из представления)?
Вот мое представление:

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

from fastapi_pagination import Page, Params, paginate
from pydantic import BaseModel
from sqlalchemy.orm import Session

class EventSerializer(BaseModel):
id: str
# ...

class EventAttendeeSerializer(BaseModel):
id: str
event: str  # contains the event UUID
# ...

class Config:
orm_mode = True

@api.get("/", response_model=Page[EventAttendeeSerializer])
async def get_list(db: Session, pagination: Params = Depends(), extend: str = None):
objects = db.query(myDbModel).all()
if "event" in extend.split(","):
# return EventSerializer for each object instead of id

return paginate(objects, pagination)
Во время выполнения это будет работать следующим образом:

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

GET /v1/event-attendees/
{
"items": [
{
"id": ,
"event": ,
}
],
"total": 1,
"page": 1,
"size": 50,
}

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

GET /v1/event-attendees/?extend=event
{
"items": [
{
"id": ,
"event": {
"id": ,
# ...
}
}
],
"total": 1,
"page": 1,
"size": 50,
}
Я искал какие-то хуки в документации и исходном коде pydantic и FastAPI, но не нашел ничего подходящего.
Кто-нибудь может помочь, пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/750 ... in-fastapi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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