Атрибут webhooks
Атрибут webhooks применяется к приложению
FastAPI и хранит словарь вебхуков,
которые описываются в OpenAPI-схеме.
Ключом словаря служит имя вебхука,
а значением - маршрут, созданный через APIRouter.
Вебхуки не создают реальных эндпоинтов,
а лишь документируют входящие запросы,
которые внешние сервисы отправляют приложению.
Синтаксис
app.webhooks
Пример
Давайте добавим вебхук 'new-event' в приложение:
from fastapi import FastAPI, APIRouter
from pydantic import BaseModel
app = FastAPI()
class Event(BaseModel):
name: str
webhook_router = APIRouter()
@webhook_router.post('/new-event')
def new_event(event: Event):
return event
app.webhooks = {'new-event': webhook_router}
Теперь описание вебхука попадает в OpenAPI-схему
по адресу '/openapi.json':
{"webhooks": {"new-event": {"post": {"summary": "New Event"}}}}
Пример
Давайте прочитаем значение атрибута webhooks:
<+python+>
from fastapi import FastAPI, APIRouter
app = FastAPI()
webhook_router = APIRouter()
@webhook_router.post('/new-user')
def new_user():
return {'status': 'ok'}
app.webhooks = {'new-user': webhook_router}
print(app.webhooks)
<-python+>
Результат выполнения кода:
{'new-user': <fastapi.routing.APIRouter object>}
Смотрите также
-
класс
FastAPI,
которому принадлежит атрибутwebhooks -
метод
openapi,
который возвращает OpenAPI-схему с вебхуками -
метод
include_router,
который подключает роутер к приложению -
атрибут
openapi_schema,
который хранит текущую OpenAPI-схему