Функция Body
Функция Body применяется в сигнатуре функции-обработчика
и указывает FastAPI, что соответствующий параметр
нужно извлечь из тела запроса.
Первым параметром передаётся значение по умолчанию,
а через именованные аргументы задаются дополнительные настройки:
embed, media_type, alias, title,
description, examples и другие.
Синтаксис
Body(default, *, embed=False, media_type=None, alias=None, title=None, description=None)
Пример
Давайте примем тело запроса как одно значение:
from fastapi import FastAPI, Body
app = FastAPI()
@app.post('/items/')
def create_item(payload: dict = Body()):
return {'payload': payload}
Результат выполнения кода при отправке тела {"text": "hello"}:
{"payload": {"text": "hello"}}
Пример
Давайте применим параметр embed, чтобы вложить тело в ключ:
from fastapi import FastAPI, Body
app = FastAPI()
@app.put('/items/')
def update_item(name: str = Body(embed=True)):
return {'name': name}
Результат выполнения кода при отправке тела {"name": "abcde"}:
{"name": "abcde"}
Пример
Давайте зададим метаданные параметра через title и description:
<+python+>
from fastapi import FastAPI, Body
app = FastAPI()
@app.post('/articles/')
def create_article(
title: str = Body(title='Article title', description='The title of the article')
):
return {'title': title}
<-python+>
Результат выполнения кода при отправке тела {"title": "article"}:
{"title": "article"}