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次下载
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