РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
91 of 307 menu

Параметр embed

Параметр embed применяется в функциях Path, Query, Body, Header, Cookie, Form и File. Он принимает булево значение и указывает FastAPI, что одиночный параметр нужно встроить в тело запроса как отдельное поле JSON-объекта, а не принимать его как единственное значение тела целиком. Чаще всего embed используется вместе с Body, когда эндпоинт принимает всего один параметр тела, но его всё равно нужно обернуть в объект.

Синтаксис

param: type = Body(default, embed=True)

Пример

Давайте примем параметр name в теле запроса как обычное значение:

from fastapi import FastAPI, Body from pydantic import BaseModel app = FastAPI() @app.post('/user') def user(name: str = Body()): return {'name': name}

В этом случае клиент отправляет голую строку в теле запроса:

"abcde"

Результат выполнения кода:

{"name": "abcde"}

Пример

Давайте включим embed, чтобы FastAPI ожидал JSON-объект с полем name:

from fastapi import FastAPI, Body app = FastAPI() @app.post('/user') def user(name: str = Body(embed=True)): return {'name': name}

Теперь клиент отправляет JSON-объект с ключом name:

{"name": "abcde"}

Результат выполнения кода:

{"name": "abcde"}

Пример

Давайте используем embed вместе с моделью Pydantic для вложенного поля:

<+python+> from fastapi import FastAPI, Body from pydantic import BaseModel app = FastAPI() class Item(BaseModel): title: str price: int @app.post('/order') def order(item: Item = Body(embed=True)): return {'item': item} <-python+>

Теперь тело запроса содержит объект item с полями модели:

<+python+> {"item": {"title": "article", "price": 100}} <-python+>

Результат выполнения кода:

<+python+> {"item": {"title": "article", "price": 100}} <-python+>

Смотрите также

  • класс Body,
    который объявляет параметр тела запроса
  • класс Query,
    который объявляет параметр строки запроса
  • параметр default,
    который задаёт значение по умолчанию для параметра
  • параметр alias,
    который задаёт альтернативное имя для параметра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить