В FastAPI, когда входные данные POST-запроса представляют собой модель Pydantic (как в этом примере), автоматические документы, сгенерированные Fastapi, содержат схему этого объекта ($ ref) (как показано здесь).
Вопрос:
Хотя входные данные запроса GET не могут быть моделью Pydantic (поскольку объекты Pydantic должны быть отправленным внутрь тела раздел запроса, а запросы get не имеют тела – ссылки.
В1. Можно ли использовать модель Pydantic для автоматически создаваемых документов?
Изменить – Да: ответ находится в ответе Криса здесь
Вопрос 2. Можно ли сделать это с вложенными объектами Pydantic (чтобы сгладить поля) Что-то вроде этого:< /p>
Код: Выделить всё
class AnotherBase(BaseModel):
c: str
d: str
class MyBase(BaseModel):
a: str = Query()
b: AnotherBase = Query()
@router.get("/myget")
def my_func(arg: MyBase = Depends()) -> MyBase:
return MyBase(a="1", b="2")
- Чтобы использовать модель pydantic в качестве входных данных запроса на получение - в результате это невозможно, поскольку запросы get не имеют тела
- Я пробовал следить за этой веткой, но все же, используя Depends, некоторые входные параметры необходимо отправлять внутри тела, поэтому я получаю эту ошибку от Fastapi «Ошибка типа: не удалось выполнить «выборку» в «Окне»: запрос с методом GET/HEAD не может иметь тело».
- Я пробовал следуя ответу Криса1, но внутренний объект (b: AnotherBase) по какой-то причине находится в разделе тела (которого не существует)
Подробнее здесь: https://stackoverflow.com/questions/757 ... g-pydantic