#swagger #openapi #openapi-v3 #generate #query-parameters

struct2swagger

从您的结构体创建 Swagger OpenApi3

6 个版本

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日

#7 in #openapi-v3


用于 struct2swagger_derive

MIT 许可证

46KB
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
}

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

贡献

欢迎每一个贡献:打开一个 issue 并提交 PR!

许可证

此处 所述 MIT 许可证

依赖项

~0.6–1.4MB
~32K SLoC