如何解决看起来 swagger-codegen-cli -DdebugModels 不显示父级,显示无法访问的 interfaceModels 并且在 2.4.14 之后损坏?
运行 swagger-codegen 2.4.14 以生成带有 -DdebugModels 的 Java 语言 jaxrs-spec:
java -DdebugModels -jar swagger-codegen-cli-2.4.14.jar generate -i composition_2.yaml -l jaxrs-spec
使用规范 https://swagger.io/specification/v2/“带组合的模型”示例,其中 composition_2.yaml 包含以下摘录:
ExtendedErrorModel:
allOf: # Combines the BasicErrorModel and the inline model
- $ref: '#/deFinitions/BasicErrorModel'
- type: object
required:
- rootCause
properties:
rootCause:
type: string
产生:
[…{…},{
"importPath" : "io.swagger.model.ExtendedErrorModel","model" : {
"interfaces" : [ "BasicErrorModel" ],"interfaceModels" : [ {
"name" : "BasicErrorModel","classname" : "BasicErrorModel","classVarName" : "basicErrorModel",…
"vars" : [ {
"baseName" : "message","getter" : "getMessage","setter" : "setMessage","datatype" : "String",…]
- 鉴于此使用了 https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/main/resources/JavaJaxRS/pojo.mustache 中的 pojo.mustache(摘自 https://mvnrepository.com/artifact/io.swagger/swagger-codegen-cli/2.4.14 下面)(请注意,在 2.4.14 之后 -DdebugModels 导致 stackOverflowError 崩溃,因此我尽管 openApi3 版本是我真正感兴趣的版本,但无法检查该模型)
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}}
{
为什么 parent 在 debugModel 输出中不显示为元素?
-
鉴于上面显示的生成的 debugModel 的摘录,获取 ExtendedErrorModel 的 model.interfaceModels.vars.baseName 的语法是什么?类似于:{{#models}}{{#interfaceModels}}{{#vars}}{{baseName}}? (这不起作用)。
-
考虑到这些版本生成 ExtendedErrorModel extends BasicErrorModel,ExtendedErrorModel 的 model.interfaceModels.vars.baseName 是否是在 2.4.17 和 3.0.24 中查找基类变量名称的正确路径而 2.4.14 只生成包含所有字段的 ExtendedErrorModel?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。