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

Метод openapi

Метод openapi применяется к приложению FastAPI и возвращает словарь с описанием всех маршрутов в формате OpenAPI. Схема строится автоматически на основе зарегистрированных обработчиков, моделей Pydantic и метаданных приложения. Метод не принимает параметров. Обычно он вызывается автоматически при обращении к адресу из атрибута openapi_url.

Синтаксис

app.openapi()

Пример

Давайте создадим приложение с одним маршрутом и получим его OpenAPI-схему:

from fastapi import FastAPI app = FastAPI() @app.get('/') def index(): return {'text': 'hello'} schema = app.openapi() print(schema['openapi']) print(list(schema['paths'].keys()))

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

"3.1.0" ['/']

Пример

Давайте посмотрим, как в схеме описывается маршрут с параметром пути и моделью ответа:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int @app.get('/user/{name}', response_model=User) def user(name: str): return {'name': name, 'age': 25} schema = app.openapi() path = schema['paths']['/user/{name}']['get'] print(path['parameters']) print(path['responses']['200']['content'].keys())

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

[{'name': 'name', 'in': 'path', 'required': True, 'schema': {'type': 'string', 'title': 'Name'}}] dict_keys(['application/json'])

Пример

Давайте сохраним OpenAPI-схему в JSON-файл для дальнейшего использования:

<+python+> import json from fastapi import FastAPI app = FastAPI(title='My App', version='1.0.0') @app.get('/') def index(): return {'text': 'hello'} schema = app.openapi() with open('openapi.json', 'w') as f: json.dump(schema, f, indent=2) print(schema['info']) <-python+>

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

{'title': 'My App', 'version': '1.0.0'}

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

  • атрибут openapi_url,
    который задаёт адрес для получения OpenAPI-схемы
  • атрибут openapi_schema,
    который хранит кэшированную OpenAPI-схему приложения
  • класс FastAPI,
    который представляет само приложение FastAPI
  • метод api_route,
    который регистрирует маршрут с произвольным HTTP-методом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить