23个版本 (5个稳定版本)
2.0.0 | 2023年12月8日 |
---|---|
2.0.0-rc.1 | 2023年10月21日 |
1.0.4 | 2023年12月13日 |
1.0.3 |
|
0.1.3 | 2019年3月5日 |
在编码类别中排名第45
每月下载量76,335
在73个crate中使用(直接使用42个)
375KB
2K SLoC
OpenAPI v3
此crate提供表示OpenAPI v3.0.x规范的数据结构。注意,这并不包括不兼容的更改的OpenAPI v3.1。
示例
use serde_json;
use openapiv3::OpenAPI;
fn main() {
let data = include_str!("openapi.json");
let openapi: OpenAPI = serde_json::from_str(data).expect("Could not deserialize input");
println!("{:?}", openapi);
}
目标
- 提供对规范的反序列化,它能够干净地映射到Rust枚举等。
非目标
- 反序列化和后续重新序列化是100%相同的。
- 在序列化时可能会显示一些默认值,这些默认值可能不在输入中存在。
问题
没有类型的模式最终将作为任何数据类型,根据规范可以有任何参数的任何模式类型。一些Open API文档没有包含类型参数,尝试推导类型会很好,但截至现在,这个crate满足了我的需求。
类似crate
许可证
此crate许可在以下两者之间
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
贡献
除非您明确声明,否则您提交给此crate的任何有意贡献,根据Apache-2.0许可证定义,将根据上述条款双许可,而无需任何附加条款或条件。
依赖关系
~1.4–2.5MB
~49K SLoC