#swagger #openapi #openapi-v3 #generate

struct2swagger_derive

从您的结构体创建 Swagger OpenApi3

5 个版本

0.1.6 2020年10月4日
0.1.5 2020年10月3日
0.1.3 2020年9月27日
0.1.2 2020年5月8日
0.1.0 2019年8月30日

#11 in #openapi-v3

每月22次下载

MIT 许可证

49KB
1K SLoC

struct2swagger 构建状态

从您的结构体生成 OpenAPI 规范的实用工具

安装

cargo add struct2swagger_derive struct2swagger

使用方法


#[macro_use]
extern crate struct2swagger_derive;
#[macro_use]
extern crate struct2swagger;
#[macro_use]
extern crate serde_json;

use struct2swagger::{JsonSchemaDefinition, QueryDefinition, swagger_object::SwaggerObject};
use serde_json::Result;

#[derive(Deserialize, Swagger)]
pub struct Who {
    pub name: Option<String>,
}
#[derive(Serialize, Swagger)]
pub struct HelloWorldResponse {
    pub say: String,
}

fn get_openapi_spec() -> String {
  let mut swagger_object = SwaggerObject::new(
    "the webserver name", // title
    "1.0.0" // version
  );

  swagger_add_router!(
      swagger_object, // obj
      "GET", // method
      "/", // path
      Who, // query parameters
      200, // expected status code
      "say", //  description
      HelloWorldResponse // struct in output
  );

  let json = serde_json::to_string(&address).unwrap();

  json
}

有关其他示例,请参阅 测试

贡献

欢迎所有贡献:提出一个问题并提交一个 PR!

许可证

MIT 许可证,如此处所述

依赖项

~1.5–2.1MB
~50K SLoC