DocsRouteur modulaire
Gardes et métadonnées
Décorateurs qui protègent un itinéraire et le décrivent dans le schéma OpenAPI.
Gardes
@UseGuard(*guards) fonctionne sur un contrôleur (chaque méthode) ou sur une méthode. Chaque garde est ajouté en tant que FastAPI Depends, il déclare donc les paramètres dont il a besoin et déclenche pour rejeter l'appel :
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}Décorateur middleware
@Middleware(*middlewares) se comporte de la même manière : ce sont des dépendances FastAPI, pas un middleware ASGI. Pour un véritable middleware ASGI, utilisez useMiddlewares dans Configuration ou Middleware et sécurité.
Métadonnées d'itinéraire
@UseRoute(...) définit les métadonnées de OpenAPI. Cela ne change pas le chemin.
| Argumentation | Signification |
|---|---|
name |
nom de l'itinéraire |
tags |
OpenAPI balises |
summary, description |
texte dans la référence de l'API |
deprecated |
marquer l'opération comme obsolète |
include_in_schema |
cacher l'itinéraire du schéma |
operation_id |
identifiant d'opération explicite |
openapi_extra |
champs OpenAPI supplémentaires |
Réponses
@UseResponse(...) définit status_code, response_class, response_model, responses et les options de sérialisation.
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 []
La référence API générée est servie à /docs sauf si useDocs = False.
Prochaines étapes
- Injection de dépendances
- Routes API : les mêmes options pour les gestionnaires basés sur des fichiers