Класс Request
Класс Request используется для доступа к данным
входящего HTTP-запроса. Его можно объявить параметром
в функции-обработчике маршрута, и FastAPI автоматически
передаст в него объект запроса. Через атрибуты и методы
класса можно получить тело запроса, заголовки, куки,
параметры пути и строки запроса, а также другую служебную
информацию.
Синтаксис
from fastapi import Request
@app.get(path)
def handler(request: Request):
...
Пример
Давайте получим объект запроса и вернём адрес, с которого пришёл пользователь:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/')
def index(request: Request):
return {'client': request.client.host}
Результат выполнения кода:
{"client": "127.0.0.1"}
Пример
Давайте прочитаем заголовки входящего запроса:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/')
def index(request: Request):
agent = request.headers.get('user-agent')
return {'agent': agent}
Результат выполнения кода:
{"agent": "Mozilla/5.0"}
Пример
Давайте прочитаем JSON-тело POST-запроса через метод json:
Результат выполнения кода для тела {"name": "abcde"}:
{"data": {"name": "abcde"}}
Пример
Давайте получим параметры строки запроса через атрибут
query_params:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/')
def index(request: Request):
name = request.query_params.get('name')
return {'name': name}
Результат выполнения кода для адреса /?name=abcde:
{"name": "abcde"}
Смотрите также
-
метод
json,
который читает JSON-тело запроса -
атрибут
query_params,
который хранит параметры строки запроса -
атрибут
headers,
который хранит заголовки входящего запроса -
атрибут
client,
который хранит данные о клиенте