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:
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
- Abhängigkeitsinjektion
- API-Routen: die gleichen Optionen für dateibasierte Handler