Получение списков значений
Использование класса Query позволяет получать через строку запроса списки. В общем случае списки значений передаются, когда в строке запроса одному параметру несколько раз передаются разные значения. Например, как в запросе по следующему адресу:
http://127.0.0.1:8000/user?people=tom&people=Sam&people=Bob
Здесь параметру people передаются три разных значения, соответственно мы ожидаем, что список people будет содержать три элемента:
from typing import Annotated
from fastapi import FastAPI, Path, Query
app = FastAPI()
@app.get("/user")
async def search(people: Annotated[list[str], Query()]) -> dict:
return {"user": people}
Мы установили параметру запроса people тип данных список, в результате мы увидим следующий результат:
Документация API будет обновлена соответствующим образом, где будет разрешено множество значений:
На этом мы закончим рассмотрение валидации параметров путей и запросов через Path и Query, все возможности вы можете посмотреть в официальной документации - https://fastapi.tiangolo.com/ru/tutorial/query-params-str-validations/