15 个版本 ()
1.0.0-pre-release.4 | 2024年8月6日 |
---|---|
1.0.0-pre-release.3 | 2024年8月4日 |
1.0.0-pre-release.2 | 2024年6月29日 |
0.3.6 | 2024年8月23日 |
0.2.4 | 2024年5月22日 |
在 网页编程 中排名 1387
每月下载量 320
105KB
1.5K SLoC
Apistos Shuttle —
该 crate 允许您在 Shuttle 上运行带有 Apistos 文档的 actix-web 服务器。
安装
[dependencies]
#schemars = "0.8"
# sadly we currently rely on a fork to fix multiple flatten for enums, related PR can be found here: https://github.com/GREsau/schemars/pull/264
schemars = { package = "apistos-schemars", version = "1.0.0-alpha.2" }
apistos = { version = "1.0.0-pre-release.4" }
apistos-shuttle = { version = "1.0.0-pre-release.4" }
示例
use actix_web::web::Json;
use actix_web::Error;
use apistos::api_operation;
use apistos::info::Info;
use apistos::spec::Spec;
use apistos::web::{get, resource, ServiceConfig};
use apistos_shuttle::{ApistosActixWebService, ShuttleApistosActixWeb};
#[api_operation(summary = "Say 'Hello world!'")]
pub(crate) async fn hello_world() -> Result<Json<String>, Error> {
Ok(Json("Hello world!".to_string()))
}
#[shuttle_runtime::main]
async fn actix_web() -> ShuttleApistosActixWeb<impl FnOnce(&mut ServiceConfig) + Send + Clone + 'static> {
let spec = Spec {
info: Info {
title: "A well documented API running on Shuttle".to_string(),
description: Some(
"This is an API documented using Apistos,\na wonderful new tool to document your actix API !".to_string(),
),
..Default::default()
},
..Default::default()
};
let service_config = move |cfg: &mut ServiceConfig| {
cfg.service(resource("/").route(get().to(hello_world)));
};
Ok(ApistosActixWebService {
spec,
service_config,
openapi_path: "/openapi".to_string(),
})
}
[!IMPORTANT]
默认情况下,为了防止拉取被视为 copyleft 许可的 colored,已禁用shuttle-runtime
的功能。要实现自己的跟踪,请访问 https://docs.shuttle.rs/configuration/logs
关于我们
apistos 由 Netwo 提供。
我们使用此 crate 满足内部需求,因此致力于其维护,但我们无法提供任何额外的保证。使用时请自行承担风险。
虽然我们不会投资我们不需要的功能,但我们乐于接受您可能提出的任何 pull request。
我们是一家总部位于法国的全远程电信行业公司。如果您想了解更多信息,请随时访问 我们的职业页面。
依赖项
~25–38MB
~665K SLoC