swagger-ui-dist

Crates.ioswagger-ui-dist
lib.rsswagger-ui-dist
version5.17.14
sourcesrc
created_at2024-05-19 19:49:27.436938
updated_at2024-05-28 16:37:20.160557
descriptionpackages the JS/CSS code of the swagger-ui in the form of axum routes
homepage
repositoryhttps://github.com/apimeister/swagger-ui-dist-rs/
max_upload_size
id1245175
size3,850,506
Jens Walter (JensWalter)

documentation

https://docs.rs/swagger-ui-dist

README

Latest Version

The version number reflects the swagger-ui version embedded.

Usage

With Inline OpenAPI

use axum::Router;
use swagger_ui_dist::{ApiDefinition, OpenApiSource};

#[tokio::main]
async fn main() {
    let api_def = ApiDefinition {
        uri_prefix: "/api",
        api_definition: OpenApiSource::Inline(include_str!("petstore.yaml")),
        title: Some("My Super Duper API"),
    };
    let app = Router::new().merge(swagger_ui_dist::generate_routes(api_def));
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    println!("listening on http://localhost:3000/api");
    axum::serve(listener, app).await.unwrap();
}

With external Route

use axum::{routing::get, Router};
use swagger_ui_dist::{ApiDefinition, OpenApiSource};

#[tokio::main]
async fn main() {
    let api_def = ApiDefinition {
        uri_prefix: "/api",
        api_definition: OpenApiSource::Uri("/openapi.yml"),
        title: Some("My Super Duper API"),
    };
    let app = Router::new()
        .route("/openapi.yml", get(|| async move { include_str!("petstore.yaml") }))
        .merge(swagger_ui_dist::generate_routes(api_def));
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    println!("listening on http://localhost:3000/api");
    axum::serve(listener, app).await.unwrap();
}
Commit count: 28

cargo fmt