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:

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}

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

Sunting di GitHub

Enter membuka hasil, Esc menutup.