Swagger代码生成Java,XML属性

时间:2018-09-28 13:47:51

标签: java xml swagger code-generation swagger-codegen

我现在还很陌生,要挣扎一段时间。

我正在使用Maven swagger Codegen插件(groupId:io.swagger.codegen.v3,artifactId:swagger-codegen-maven-plugin,版本:3.0.0):

<language>java</language>
<library>jersey1</library>
<java8>true</java8>
<withXml>true</withXml>
<configOptions>
    <dateLibrary>java8</dateLibrary>
</configOptions>

我有一个OpenAPI定义(我假设是3.0),它具有访问json和xml API(几个只是json,两个都路径)的路径,尽管如果两个都可用,我会全力以赴地使用XML。因为那是"@XX_YY"之类的字段名称,我无法尽力而为)。

这是/ definitions下的段

"UserExport": {
  "type": "object",
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "xml": {
          "name": "USER"
        },
        "$ref": "#/definitions/User"
      },
      "xml":{
        "name": "USER"
      }
    }
  },
  "xml": {
    "name": "USERS"
  }
}

对应的XML段:

<?xml version="1.0" encoding="UTF-8"?>
<USERS>
  <USER ....

生成的模型UserExport包含对用户列表的引用,如下所示:

@JsonProperty("users")
@XmlElement(name="null")
private List<User> users = null;

解组(即从服务中读取UserObject pojo)无法解决此问题。如果我将name="null"更改为name="USER",看起来不错。

我的问题是:

  • 这是关于我展示的XML的有效OpenAPI规范吗?
  • 如果没有,对此的有效定义是什么?使用type属性中的引用?
  • 如果它是有效的(我倾向于相信),如何使它起作用?我愿意使用其他库。

我拥有在调试器中运行的用于代码生成的工具链,并且我也愿意修改swagger-codegen-generators项目。

感谢您的帮助,弗兰克

0 个答案:

没有答案