Crates.io | utoipa-actix-web |
lib.rs | utoipa-actix-web |
version | 0.1.2 |
source | src |
created_at | 2024-10-23 12:48:55.000783 |
updated_at | 2024-11-08 12:18:43.852913 |
description | Utoipa's actix-web bindings for seamless integration of the two |
homepage | |
repository | https://github.com/juhaku/utoipa |
max_upload_size | |
id | 1420039 |
size | 47,570 |
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.
Add dependency declaration to Cargo.toml
.
[dependencies]
utoipa-actix-web = "0.1"
Collect handlers annotated with #[utoipa::path]
recursively from service(...)
calls to compose OpenAPI spec.
use actix_web::{get, App};
use utoipa_actix_web::{scope, AppExt};
#[derive(utoipa::ToSchema)]
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();
Licensed under either of Apache 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, shall be dual licensed, without any additional terms or conditions.