6 个版本 (3 个破坏性更新)

0.4.0 2024年3月16日
0.3.0 2024年3月16日
0.2.0 2024年3月15日
0.1.2 2024年3月14日

#1663 in 网页编程

Download history 80/week @ 2024-04-01 56/week @ 2024-04-08 25/week @ 2024-04-15 23/week @ 2024-04-22 59/week @ 2024-04-29 74/week @ 2024-05-06 26/week @ 2024-05-13 22/week @ 2024-05-20 14/week @ 2024-05-27 14/week @ 2024-06-03 18/week @ 2024-06-10 16/week @ 2024-06-17 15/week @ 2024-06-24 21/week @ 2024-07-08 17/week @ 2024-07-15

每月下载 54 次
用于 openapi-tui

MIT 许可证

40KB
841

Bootstrap

想法是使用 Rust 的 openapi 代码生成器来生成 openapi 规范库。为此,我从一个 openapi 规范开始,

{
    "openapi": "3.1.0",
    "info": {
        "version": "3.1.0",
        "title": "openapi"
    },
    "components": {
        "schemas": {}
    }
}

在 OpenAPI 中构建 OpenAPI

  1. 下载 OpenAPI v3.1 的 json-schema
  2. schema.$def 中的所有内容复制到上面的 OpenAPI json 中的 components.schemas
  3. openapi 定义插入到 components.schemas
  4. 将每个 #/$defs/ 替换为 #/componenst/schemas
  5. 删除每个 "$ref": "#/$defs/specification-extensions"。我们现在不需要它们。
  6. 删除每个 oneOf。我们将在生成的代码中稍后添加它们。

查看结果文件 这里

生成代码

npx -y @openapitools/openapi-generator-cli generate -i openapi-in-openapi.json -g rust -o /tmp/openapi && mv /tmp/openapi/src/models .

实现剩余部分

生成的代码并不完整,并且不会生成这些结构。我们将手动创建它们 :-)

path-item-or-reference
parameter-or-reference
request-body-or-reference
response-or-reference
callbacks-or-reference
example-or-reference
link-or-reference
header-or-reference
security-scheme-or-reference

依赖项

~2.4–3.5MB
~95K SLoC