15 个版本 ()

1.0.0-pre-release.42024年8月6日
1.0.0-pre-release.32024年8月4日
1.0.0-pre-release.22024年6月29日
0.3.6 2024年8月23日
0.2.4 2024年5月22日

网页编程 中排名 1387

Download history 118/week @ 2024-05-13 155/week @ 2024-05-20 4/week @ 2024-06-03 131/week @ 2024-06-10 167/week @ 2024-06-17 192/week @ 2024-06-24 92/week @ 2024-07-01 456/week @ 2024-07-08 8/week @ 2024-07-15 2/week @ 2024-07-22 116/week @ 2024-07-29 184/week @ 2024-08-05 18/week @ 2024-08-12

每月下载量 320

MIT/Apache

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