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
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