4 releases
new 0.1.0-rc.0 | Oct 2, 2024 |
---|---|
0.1.0-beta.2 | Sep 4, 2024 |
0.1.0-beta.1 | Sep 2, 2024 |
0.1.0-beta.0 | Sep 1, 2024 |
#1794 in Web programming
675 downloads per month
385KB
6K
SLoC
utoipa-axum - Bindings for Axum and utoipa
Utoipa axum brings utoipa
and axum
closer together by the way of providing an ergonomic API that is extending on
the axum
API. It gives a natural way to register handlers known to axum
and also simultaneously generates OpenAPI
specification from the handlers.
Crate features
debug
: Implement debug traits for types.
Install
Add dependency declaration to Cargo.toml
.
[dependencies]
utoipa_axum = "0.1"
Examples
Use OpenApiRouter
to collect handlers with #[utoipa::path]
macro to compose service and form OpenAPI spec.
use utoipa_axum::{routes, PathItemExt, router::OpenApiRouter};
#[derive(utoipa::ToSchema)]
struct User {
id: i32,
}
#[utoipa::path(get, path = "/user", responses((status = OK, body = User)))]
async fn get_user() -> Json<User> {
Json(User { id: 1 })
}
let (router, api) = OpenApiRouter::new()
.routes(routes!(get_user))
.split_for_parts();
License
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.
Dependencies
~3.5–5MB
~99K SLoC