Метод body
Метод body применяется к объекту запроса Request
и читает тело HTTP-запроса в виде байтов.
Метод является асинхронным, поэтому вызывается через await.
Возвращает объект bytes с содержимым тела запроса.
Если тело запроса пустое, возвращается пустая строка байтов.
Синтаксис
await request.body()
Пример
Давайте прочитаем тело POST-запроса и вернём его в виде текста:
from fastapi import FastAPI, Request
app = FastAPI()
@app.post('/')
async def index(request: Request):
body = await request.body()
return {'body': body.decode()}
Результат выполнения кода для тела 'hello':
{"body": "hello"}
Пример
Давайте прочитаем тело запроса и преобразуем его из JSON вручную:
import json
from fastapi import FastAPI, Request
app = FastAPI()
@app.post('/')
async def index(request: Request):
body = await request.body()
data = json.loads(body)
return {'name': data['name']}
Результат выполнения кода для тела '{"name": "abcde"}':
{"name": "abcde"}
Пример
Давайте проверим, что тело запроса пустое, и вернём соответствующий ответ:
from fastapi import FastAPI, Request
app = FastAPI()
@app.post('/')
async def index(request: Request):
body = await request.body()
if not body:
return {'message': 'empty body'}
return {'size': len(body)}
Результат выполнения кода для пустого тела запроса:
{"message": "empty body"}