This crate implements necessary boiler plate code to serve Swagger UI via web server. It works as a bridge for serving the OpenAPI documetation created with utoipa libarary in the Swagger UI.
Currently implemented boiler plate for:
version >= 4
version >=0.5.0-rc.1
version >=0.5
Serving Swagger UI is framework independant thus this crate also supports serving the Swagger UI with other frameworks as well. With other frameworks there is bit more manual implementation to be done. See more details at serve or examples.
axum
integration with pre-configured Router serving Swagger UI and OpenAPI specs
hazzle free.Use only the raw types without any boiler plate implementation. ```toml [dependencies] utoipa-swagger-ui = "2"
Enable actix-web framework with Swagger UI you could define the dependency as follows.
toml
[dependencies]
utoipa-swagger-ui = { version = "2", features = ["actix-web"] }
```
Note! Also remember that you already have defined utoipa
dependency in your Cargo.toml
Serve Swagger UI with api doc via actix-web
. See full example from examples.
rust
HttpServer::new(move || {
App::new()
.service(
SwaggerUi::new("/swagger-ui/{_:.*}")
.url("/api-doc/openapi.json", ApiDoc::openapi()),
)
})
.bind((Ipv4Addr::UNSPECIFIED, 8989)).unwrap()
.run();
Serve Swagger UI with api doc via rocket
. See full example from examples.
```rust
fn rocket() -> Rocket
Setup Router to serve Swagger UI with axum
framework. See full implementation of how to serve
Swagger UI with axum from examples.
rust
let app = Router::new()
.merge(SwaggerUi::new("/swagger-ui/*tail")
.url("/api-doc/openapi.json", ApiDoc::openapi()));
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.