gpt4 book ai didi

php - swagger-codegen 或 openapi-generator PHP 版本

转载 作者:行者123 更新时间:2023-12-05 05:52:34 27 4
gpt4 key购买 nike

实际问题:是否可以选择 PHP 版本 (5.6、7.1、7.2、...) 生成代码?

我从 https://api.otto.market/docs 得到了一个 swagger.json
应该是 openapi.json 左右,因为该文件包含 "openapi": "3.0.3",。无论如何......

到目前为止我发现它们(swagger 和 openapi-generator) 似乎有用于代码生成的模板。
这些模板是用所用版本的语言编写的。

这个( openapitools/openapi-generator-cli )

docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate \
-i /local/path/to/swagger.json \
-g php \
-o /local/path/to/generated/code/

创建一个 composer.json
...
"require": {
"php": "^7.3 || ^8.0",
...
},
...

我现在可以使用模板并更改要求。
但我认为这不是代码生成器的目标。
有关添加到底部的模板的信息。

我猜应该有为其他 PHP 版本编写的模板。
但是我该如何选择呢?
有吗?


Swagger:据我所知,swagger 排在第一位,而 openapi-generator 是一个分支。
所以我试着 Swagger :

docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate \
-i /local/path/to/swagger.json \
-l php \
-o /local/path/to/generated/code/

Swagger 为 PHP 5.5 创建了代码(从生成的 composer.json 开始)。
但它会带来警告并且生成的代码看起来“已损坏”。
我其实并不奇怪,因为该文件是为 openapi": "3.0.3 制作的。

但我看到的是:swagger 有适用于 PHP 5.5 的模板。


我个人目前的结论:
我可以真正快速地生成代码。对于一个我并不(必须)知道的 API。
但是,如果我无法更改语言版本,这对我有何帮助?

我在 2 个项目中需要一个 API 客户端。
一个在 PHP 7.1 中,另一个在 7.3 中。我该如何解决这个问题?

有人必须处理这个吗?或者有什么想法?



信息
模板:如何使用模板:
调用 docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli author template -g php -o/local/templates/将所有模板保存到路径 templates/.
然后你可以 f.e.将 composer.mustache 复制到 f.e. deploy/templates/ 并更改它。
在生成代码时,您使用 -t/local/deploy/templates 来使用您的 更改的模板。示例:

docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate \
-i /local/path/to/swagger.json \
-g php \
-o /local/path/to/generated/code/ \
-t /local/deploy/templates

最佳答案

Old versions of OpenAPI Generator (例如 3.0.0、4.0.0)支持旧的 PHP 版本。

要在 OpenAPI 生成器 CLI 版本之间轻松切换,您可能需要使用 NPM CLI wrapper for OpenAPI Generator .

关于php - swagger-codegen 或 openapi-generator PHP 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70118794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com