Expand description
This crate implements necessary bindings for automatically collecting paths and schemas recursively from Actix Web
App, Scope and ServiceConfig. It provides natural API reducing duplication and support for scopes while generating
OpenAPI specification without the need to declare paths and schemas to #[openapi(...)] attribute of OpenApi derive.
Currently only service(...) calls supports automatic collection of schemas and paths. Manual routes via route(...) or
Route::new().to(...) is not supported.
§Install
Add dependency declaration to Cargo.toml.
[dependencies]
utoipa-actix-web = "0.1"§Examples
Collect handlers annotated with #[utoipa::path] recursively from service(...) calls to compose OpenAPI spec.
use actix_web::web::Json;
use actix_web::{get, App};
use utoipa_actix_web::{scope, AppExt};
#[derive(utoipa::ToSchema, serde::Serialize)]
struct User {
id: i32,
}
#[utoipa::path(responses((status = OK, body = User)))]
#[get("/user")]
async fn get_user() -> Json<User> {
Json(User { id: 1 })
}
let (_, mut api) = App::new()
.into_utoipa_app()
.service(scope::scope("/api/v1").service(get_user))
.split_for_parts();Re-exports§
pub use scope::scope;
Modules§
- scope
- Implement
utoipaextendedScopeforactix_web::Scope. - service_
config - Implement
utoipaextendedServiceConfigforactix_web::web::ServiceConfig.
Structs§
- Utoipa
App - Wrapper type for
actix_web::Appandutoipa::openapi::OpenApi.
Traits§
- AppExt
- Extends
actix_web::Appwithutoiparelated functionality. - Open
ApiFactory - This trait is used to unify OpenAPI items collection from types implementing this trait.