OpenAPI v3
本crate提供了表示OpenAPI v3.0.x规范的数据结构。请注意,这不包括OpenAPI v3.1,因为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("无法反序列化输入");
println!("{:?}", openapi);
}
目标
- 为规范提供一个反序列化,可以清晰地映射到Rust枚举等。
非目标
- 反序列化和随后的重新序列化100%相同。
- 序列化时可能会出现一些在输入中不存在的默认值。
问题
没有类型的架构将按照规范成为任何数据类型,并可以具有任何架构类型的任何参数。一些Open API文档不包含类型参数,最好能尝试推导类型,但目前这个crate满足了我的需求。
类似的Crates
许可证
本crate在以下两种许可证之一下授权
Apache许可证,版本2.0,(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
贡献
除非您另有明确说明,否则您有意提交以包含在本crate中的任何贡献,按照Apache-2.0许可证的定义,均应按上述方式双重许可,无任何附加条款或条件。