#swagger-ui #axum #open-api #routes #dist #router #js-css

swagger-ui-dist

以axum路由形式打包swagger-ui的JS/CSS代码

4个稳定版本

5.17.14 2024年5月28日
5.17.13 2024年5月27日
5.17.12 2024年5月21日
5.17.10 2024年5月19日

#2 in #dist

Download history • Rust 包仓库 388/week @ 2024-05-18 • Rust 包仓库 479/week @ 2024-05-25 • Rust 包仓库 44/week @ 2024-06-01 • Rust 包仓库 130/week @ 2024-06-08 • Rust 包仓库 7/week @ 2024-06-15 • Rust 包仓库 12/week @ 2024-06-22 • Rust 包仓库 58/week @ 2024-06-29 • Rust 包仓库 83/week @ 2024-07-06 • Rust 包仓库 48/week @ 2024-07-13 • Rust 包仓库 178/week @ 2024-07-20 • Rust 包仓库 75/week @ 2024-07-27 • Rust 包仓库 76/week @ 2024-08-03 • Rust 包仓库

384 每月下载量

Apache-2.0

4MB
122

Latest Version

版本号反映嵌入的swagger-ui版本。

用法

使用内联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 https://127.0.0.1:3000/api");
    axum::serve(listener, app).await.unwrap();
}

使用外部路由

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 https://127.0.0.1:3000/api");
    axum::serve(listener, app).await.unwrap();
}

依赖项

~5–7MB
~124K SLoC