的实际问题:是否可以选择PHP (5.6,7.1,7.2,.)生成代码?
我从swagger.json那里得到了一个https://api.otto.market/docs
它应该是一个openapi.json左右,因为文件包含"openapi": "3.0.3",__。总之..。
到目前为止,我发现他们(swagger和openapi生成器)似乎有代码生成的模板。
这些模板是用语言编写的,供使用中的版本使用。
F.e.这个(https://github.com/OpenAPITools/openapi-generator#16---docker)
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版本编写的模板。
但我该怎么选择呢?
有吗?
斯威格:正如我所读到的,斯威格是第一位的,而openapi生成器是叉子。
所以我试着昂首阔步:
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为PHP5.5创建了代码(从生成的composer.json开始)。
但是它会带来警告,生成的代码看起来“坏了”。
实际上,我并不奇怪,因为文件是为openapi": "3.0.3__创建的。
但我看到的是: swagger有用于PHP5.5的模板。
我个人目前的结论是:
我可以快速生成代码。对于一个我并不真正知道的API。
但是,如果我不能改变语言版本,它对我有什么帮助呢?
F.e.我需要一个API客户在两个项目。
一个是PHP7.1,另一个是7.3。我该怎么解决这个问题?
有人要处理这件事吗?或者有什么想法?
信息
模板:如何使用模板:
调用docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli author template -g php -o /local/templates/将所有模板保存到路径templates/。
那你就可以了。把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发布于 2021-11-29 16:55:00
OpenAPI生成器的旧版本 (例如3.0.0,4.0.0)支持旧的PHP版本。
要在OpenAPI生成器CLI版本之间轻松切换,您可能需要使用用于OpenAPI生成器的NPM包装器。
https://stackoverflow.com/questions/70118794
复制相似问题