DokuModularer Router

Guards und Metadaten

Dekoratoren, die eine Route schützen und sie im OpenAPI-Schema beschreiben.

Wachen

@UseGuard(*guards) funktioniert auf einem Controller (jede Methode) oder auf einer Methode. Jeder Guard wird als FastAPI Depends hinzugefügt, sodass er die benötigten Parameter deklariert und auslöst, um den Aufruf abzulehnen:

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-Dekorateur

@Middleware(*middlewares) verhält sich genauso: Dies sind FastAPI Abhängigkeiten, keine ASGI-Middleware. Für echte ASGI-Middleware verwenden Sie useMiddlewares in Konfiguration oder Middleware und Sicherheit.

Routenmetadaten

@UseRoute(...) legt OpenAPI Metadaten fest. Es ändert den Pfad nicht.

Argument Bedeutung
name Routenname
tags OpenAPI-Tags
summary, description Text in der API-Referenz
deprecated Markieren Sie den Vorgang als veraltet
include_in_schema Verstecken Sie die Route aus dem Schema
operation_id explizite Vorgangs-ID
openapi_extra zusätzliche OpenAPI Felder

Antworten

@UseResponse(...) legt status_code, response_class, response_model, responses und die Serialisierungsoptionen fest.

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 []

Die generierte API-Referenz wird unter /docs bereitgestellt, sofern nicht useDocs = False.

Nächste Schritte

Auf GitHub bearbeiten

Enter öffnet das Ergebnis, Esc schließt.