我想生成一个 Python Flask 服务器,提供特定的 OpenAPI 规范作为输入 - 比如说 foo.yaml - 运行以下命令:
java -jar openapi-generator-cli.jar generate -i foo.yaml -g python-flask -o python-flask_api_server
但是,这会生成一个服务器存根,其中包含\python-flask_api_server\openapi_server\controllers下名为foo_controller.py的文件,并且此文件中定义的每个方法都返回相同的模板字符串:
“做点魔术!”
foo_controller.py
def foo_post(inline_object=None): # noqa: E501
"""Create a foo
# noqa: E501
:param inline_object:
:type inline_object: dict | bytes
:rtype: str
"""
if connexion.request.is_json:
inline_object = InlineObject.from_dict(connexion.request.get_json()) # noqa: E501
return 'do some magic!'
我试图用 OpenAPI Generator 做的是生成一个服务器存根,它的foo_controller.py引用我自己的这个文件的实现,例如:
foo_controller.py(生成的文件)
import foo_controller_impl
def foo_post(inline_object=None): # noqa: E501
"""Create a foo
# noqa: E501
:param inline_object:
:type inline_object: dict | bytes
:rtype: str
"""
foo_controller_impl.foo_post_impl(inline_object)
foo_controller_impl.py(我对 foo_controller.py 的实现)
def foo_post_impl(inline_object=None): # noqa: E501
if connexion.request.is_json:
inline_object = InlineObject.from_dict(connexion.request.get_json()) # noqa: E501
print("Request body is:\n" + str(inline_object))
response = "/foo/1"
return response
我运行了以下命令来生成一个新的模板集:
java -jar openapi-generator-cli.jar meta -o my-codegen -n myCodegen -p org.openapitools.codegen
但是在阅读了生成的README.md并检查了MycodegenGenerator.java之后,我仍然不太清楚如何实现这一点。
任何帮助将不胜感激。