2.4 Маршрутизация в FastAPI
15 из 15 шагов пройдено
38 из 38 баллов  получено

Параметры запроса

Параметр запроса — это пара ключ-значение, предоставляемая после окончания URL- адреса конечной точки, обозначенного вопросительным знаком (?). Как и параметр пути, он также содержит данные запроса. Служба API может управлять рядом параметров запроса, разделенных амперсандом (&). Как и в параметрах пути, все параметры запроса также объявляются в методе службы.

Напишем новую функцию в наше приложение, использующее параметры запроса:

from fastapi import FastAPI

app = FastAPI()


@app.get("/user")
async def login(username: str, age: int) -> dict:
    return {"user": username, "age": age}

Функция login получает username в качестве параметра запроса типа str и age ​в качестве параметра запроса типа int. Посмотрим на блок-схему, чтобы еще раз разобраться как будет работать данный код.

Мы можем перейти по адресу http://127.0.0.1:8000/user?username=Ilya&age=33 и посмотреть результат:

Также мы можем комбинировать, получая параметры пути и параметры запроса. Причем имея в части URL-адреса фиксированные пути. Несмотря на то, что параметры пути предшествуют параметрам запроса в URL-адресе, нет необходимости следовать порядку при их объявлении в определении функции.

from fastapi import FastAPI

app = FastAPI()


@app.get("/employee/{name}/company/{company}")
async def get_employee(name: str, department: str, company: str) -> dict:
    return {"Employee": name, "Company": company, "Department": department}

Теперь мы можем перейти по адресу http://127.0.0.1:8000/employee/Ilya/company/stepik?department=it и посмотреть результат:

Мы видим, что независимо от объявления параметров в функции get_employee(), URL-адрес обрабатывается правильно, изначально идут параметры пути, и после идут параметры запроса.

 


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.