ДокументацияМодульный маршрутизатор

Охранники и метаданные

Декораторы, защищающие маршрут и описывающие его в схеме OpenAPI.

Охранники

@UseGuard(*guards) работает на контроллере (каждый метод) или на одном методе. Каждый охранник добавляется как FastAPI Depends, поэтому он объявляет необходимые ему параметры и выдает их для отклонения вызова:

src/apps/admin/admin_controller.py
from fastapi import Header, HTTPExceptionfrom nexy.decorators import Controller, UseGuard  def require_token(x_token: str = Header(...)) -> None:    if x_token != "secret":        raise HTTPException(status_code=403, detail="Forbidden")  @Controller("/admin")@UseGuard(require_token)class AdminController:    async def get(self) -> dict:        return {"ok": True}

Декоратор промежуточного программного обеспечения

@Middleware(*middlewares) ведет себя таким же образом: это зависимости FastAPI, а не промежуточное ПО ASGI. Для реального промежуточного программного обеспечения ASGI используйте useMiddlewares в Конфигурация или Промежуточное программное обеспечение и безопасность.

Метаданные маршрута

@UseRoute(...) устанавливает метаданные OpenAPI. Это не меняет путь.

Аргумент Значение
name название маршрута
tags OpenAPI теги
summary, description текст в ссылке API
deprecated отметить операцию как устаревшую
include_in_schema скрыть маршрут из схемы
operation_id явный идентификатор операции
openapi_extra дополнительные OpenAPI поля

Ответы

@UseResponse(...) устанавливает status_code, response_class, response_model, responses и параметры сериализации.

from nexy.decorators import Controller, UseResponse, UseRoute  @Controller("/users")class UserController:    @UseRoute(summary="List users", tags=["users"])    @UseResponse(status_code=200)    async def get(self) -> list[dict]:        return []

Сгенерированная ссылка API обслуживается по адресу /docs, если только useDocs = False.

Следующие шаги

Изменить на GitHub

Enter открывает результат, Esc закрывает.