#openapi #extension #utilities #openapi-v3 #data #methods #information

openapi_utils

用于处理 OpenAPI 3.0 文件的扩展方法和工具

14 个版本

0.6.1 2024 年 8 月 2 日
0.6.0 2024 年 2 月 24 日
0.5.2 2023 年 11 月 17 日
0.4.0 2022 年 2 月 5 日
0.1.1 2019 年 12 月 12 日

#566解析器实现

Download history 3/week @ 2024-05-10 9/week @ 2024-05-17 24/week @ 2024-05-24 6/week @ 2024-05-31 27/week @ 2024-06-07 37/week @ 2024-06-14 84/week @ 2024-06-21 49/week @ 2024-06-28 20/week @ 2024-07-05 78/week @ 2024-07-12 70/week @ 2024-07-19 79/week @ 2024-07-26 180/week @ 2024-08-02 44/week @ 2024-08-09

每月 395 次下载
openapi-fuzzer 中使用

MIT/Apache 许可协议

26KB
509 行(不包括注释)

Openapi Utils

此软件包为 Openapiv3 软件包 的多个结构体提供扩展方法。

旨在使处理 openapi 合同中的信息更加方便。

用法

此软件包在 openapiv3::OpenAPI 数据类型上提供了一个 deref_all 方法。此方法将文档中的所有 $ref 内联。

示例

use openapi_utils::SpecExt;

pub fn read<P: AsRef<Path>>(filename: P) -> openapiv3::OpenAPI {
    let data = std::fs::read_to_string(filename).expect("OpenAPI file could not be read.");
    serde_yaml::from_str(&data).expect("Could not deserialize file as OpenAPI v3.0 yaml")
}

let spec = read(filename).deref_all();

在 ReferenceOr 结构体中的 to_itemto_item_refto_item_mut 方法假设在 spec 上已调用 deref_all,否则会 panic。这些方法实际上是一个简写,用于在枚举中选择正确的元素(项目)。

有关其他结构体中的其他方法,请参阅每个扩展的文档。要在您的结构体中使用这些方法,您需要使用相应的扩展。

支持 no_std

此软件包与 no_std 兼容,尽管需要一个全局分配器。

许可协议

许可协议为 Apache 许可协议 2.0 版或 MIT 许可协议,由您选择。
除非您明确声明,否则您根据 Apache-2.0 许可协议有意提交给此软件包的任何贡献,均应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~2.4–3.5MB
~63K SLoC