为了账号安全,请及时绑定邮箱和手机立即绑定

openapi 代码生成器 - python 服务器存根工作流

openapi 代码生成器 - python 服务器存根工作流

白衣染霜花 2022-01-05 10:26:17
我正在使用 openapi-generator 生成服务器存根 python 代码。一切正常,但是,每次我更改 OpenAPI 规范(yaml 文件)时,代码生成器都会覆盖整个代码,甚至是自定义的代码(控制器)。我想开发一个增量工作流,如果我对规范进行更改,生成器只会修改处理该部分代码的代码。如果我能够执行规范并拥有增量工作流程,那就太好了。我正在使用 openapi-generator 版本 3.3.4。我尝试修改控制器并删除# noqa: E501,但每次我从规范生成存根时它仍然会覆盖代码。由于生成的代码不是 OOP,如何通过生成的接口隔离控制器实现?
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

为了解决这个问题,我将端点实现放入openapi_server/implementation/模块中的文件中,然后在构建过程中实现了一个补丁系统。

我生成服务器存根,然后将补丁应用到openapi_server/controller.

该补丁包括向端点实现函数添加各种导入,用对端点实现的调用替换这些 return 'do some magic!'行,甚至删除# noqa: E501我不想要的注释。

有了这个系统,我的 openapi-generator 可以在openapi_server/controller每次运行时覆盖该目录,最后我仍然以调用我需要的实现的状态结束这些文件,并且我想要的任何其他调整都已应用。


查看完整回答
反对 回复 2022-01-05
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

我试图修改控制器并删除 # noqa: E501,但每次我从规范生成存根时它仍然会覆盖代码。

您可能希望使用带有该-t选项的自定义模板。


查看完整回答
反对 回复 2022-01-05
?
隔江千里

TA贡献1906条经验 获得超10个赞

一个简单的解决方法是增加openapi_server/controllers了在.openapi-generator-ignore文件中,以便他们每次更新您的API合同规定的时间不会被覆盖。

不过,您必须自己手动创建这些文件


查看完整回答
反对 回复 2022-01-05
  • 3 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信