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 网页编程
每月下载 54 次
用于 openapi-tui
40KB
841 行
Bootstrap
想法是使用 Rust 的 openapi 代码生成器来生成 openapi 规范库。为此,我从一个 openapi 规范开始,
{
"openapi": "3.1.0",
"info": {
"version": "3.1.0",
"title": "openapi"
},
"components": {
"schemas": {}
}
}
在 OpenAPI 中构建 OpenAPI
- 下载 OpenAPI v3.1 的 json-schema
- 将
schema.$def
中的所有内容复制到上面的 OpenAPI json 中的components.schemas
- 将
openapi
定义插入到components.schemas
- 将每个
#/$defs/
替换为#/componenst/schemas
- 删除每个
"$ref": "#/$defs/specification-extensions"
。我们现在不需要它们。 - 删除每个
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