Skip to main content

controller

Attribute Macro controller 

Source
#[controller]
Expand description

§Controller macro

Generates a router() function from annotated methods. #[require_role("ROLE_X")] auto-injects auth.require_role("ROLE_X")?; at the beginning of the handler body.

§Usage

#[controller(prefix = "/api/v1/admin/articles")]
impl ArticleController {
    #[get("/")]
    #[require_role("ROLE_ADMIN")]
    async fn list(
        auth: AuthGuard,
        State(state): State<AppState>,
    ) -> AppResult<impl IntoResponse> {
        // auth.require_role("ROLE_ADMIN")?; ← auto-injected!
        let items = ...;
        Ok(Json(items))
    }
}