DokumentasiRouter modular
Penjaga dan metadata
Dekorator yang melindungi rute dan mendeskripsikannya dalam skema OpenAPI.
Penjaga
@UseGuard(*guards) bekerja pada pengontrol (setiap metode) atau pada satu metode. Setiap penjaga ditambahkan sebagai FastAPI Depends, sehingga ia mendeklarasikan parameter yang diperlukan dan dimunculkan untuk menolak panggilan:
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}Dekorator middleware
@Middleware(*middlewares) berperilaku dengan cara yang sama: ini adalah dependensi FastAPI, bukan middleware ASGI. Untuk middleware ASGI yang sebenarnya, gunakan useMiddlewares di Konfigurasi atau Middleware dan keamanan.
Metadata rute
@UseRoute(...) menyetel metadata OpenAPI. Itu tidak mengubah jalur.
| Argumen | Artinya |
|---|---|
name |
nama rute |
tags |
OpenAPI tag |
summary, description |
teks dalam referensi API |
deprecated |
tandai operasi tersebut tidak berlaku lagi |
include_in_schema |
sembunyikan rute dari skema |
operation_id |
id operasi eksplisit |
openapi_extra |
bidang OpenAPI tambahan |
Tanggapan
@UseResponse(...) mengatur status_code, response_class, response_model, responses dan opsi serialisasi.
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 []
Referensi API yang dihasilkan disajikan di /docs kecuali useDocs = False.
Langkah selanjutnya
- Injeksi ketergantungan
- Rute API: opsi yang sama untuk penangan berbasis file