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
384 每月下载量
4MB
122 行
版本号反映嵌入的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