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 :

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}

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

Modifier sur GitHub

Entrée ouvre le résultat, Échap ferme.