2 个不稳定版本
0.2.0-alpha.0 | 2024 年 5 月 30 日 |
---|---|
0.1.0 | 2024 年 5 月 5 日 |
#2140 在 网页编程
6,126 每月下载量
在 dragon_db 中使用
315KB
4.5K SLoC
utoipa-scalar
这个 crate 作为一个桥梁,连接 utoipa 和 Scalar OpenAPI 可视化器。
Utoipa-scalar 提供了一种简单机制,将 OpenAPI 规范资源转换为可服务的 HTML 文件,可以通过预定义的框架集成或独立使用并手动提供服务。
您可以在 utoipa 的 Github 仓库 中找到完整示例。
crate 功能
- actix-web 允许通过
actix-web
提供服务。version >= 4
- rocket 允许通过
rocket
提供服务。version >=0.5
- axum 允许通过
axum
提供服务。version >=0.7
安装
仅使用 Scalar,不进行任何样板实现。
[dependencies]
utoipa-scalar = "0.1"
启用 Scalar 与 actix-web 集成。
[dependencies]
utoipa-scalar = { version = "0.1", features = ["actix-web"] }
独立使用
Utoipa-scalar 可以作为独立库使用,只需创建一个新的 Scalar
实例,然后通过您喜欢的网页框架中的 http 处理器以 text/html
的方式提供服务。
Scalar::to_html
方法可以将 Scalar
实例转换为可服务的 HTML 文件。
let scalar = Scalar::new(ApiDoc::openapi());
// Then somewhere in your application that handles http operation.
// Make sure you return correct content type `text/html`.
let scalar = move || async {
scalar.to_html()
};
示例
通过 actix-web
框架提供服务。
use actix_web::App;
use utoipa_scalar::{Scalar, Servable};
App::new().service(Scalar::with_url("/scalar", ApiDoc::openapi()));
通过 rocket
框架提供服务。
use utoipa_scalar::{Scalar, Servable};
rocket::build()
.mount(
"/",
Scalar::with_url("/scalar", ApiDoc::openapi()),
);
通过 axum
框架提供服务。
use axum::Router;
use utoipa_scalar::{Scalar, Servable};
let app = Router::<S>::new()
.merge(Scalar::with_url("/scalar", ApiDoc::openapi()));
使用 Scalar
从 URL 提供 OpenAPI 规范。
Scalar::new(
"https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml")
使用 Scalar
使用 serde 的 json!()
宏提供自定义 OpenAPI 规范。
Scalar::new(json!({"openapi": "3.1.0"}));
许可
许可证采用Apache 2.0或MIT许可证,由您选择。
除非您明确声明,否则您提交给本crate的任何有意包含的贡献将采用双重许可,不附加任何额外条款或条件。
依赖项
~1–34MB
~535K SLoC