首页 > 解决方案 > swagger-codegen-maven-plugin 2.3.1 生成响应自定义对象但不在 3.0.0 中

问题描述

swagger-codegen-maven-plugin 2.3.1 生成一个 java 对象:

public InlineResponse2005 loginJsonapiPost(Auth auth) throws RestClientException { ...

public class InlineResponse2005 {
  @JsonProperty("data")
  private User data = null;
  @JsonProperty("meta")
  private Object meta = null;
  @JsonProperty("links")
  private Object links = null;
  @JsonProperty("errors")
  private Errors errors = null;
  ...
}

但 swagger-codegen-maven-plugin 3.0.0-SNAPSHOT不会生成 java 对象并返回 Object 对象:

public Object loginJsonapiPost(Object body) throws RestClientException { ...

我的招摇文件:

"/login.jsonapi": {
      "post": {
        "summary": "Create a session",
        "tags": [
          "Users"
        ],
        "consumes": [
          "application/json"
        ],
        "description": "      Authenticate a user with her/his email and password and return an\n      access token suitable for authentication.\n",
        "parameters": [
          {
            "name": "auth",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string"
                },
                "password": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returning",
            "schema": {
              "type": "object",
              "properties": {
                "data": {
                  "$ref": "#/definitions/user"
                },
                "meta": {
                  "type": "object"
                },
                "links": {
                  "type": "object"
                },
                "errors": {
                  "$ref": "#/definitions/errors"
                }
              },
              "required": [
                "data"
              ]
            }
          },
          "422": {
            "description": "Returning",
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "$ref": "#/definitions/errors"
                }
              },
              "required": [
                "errors"
              ]
            }
          }
        }
      }
    },

我的回应是:

response.schema.properties.data "#/definitions/user"

response.schema.properties.meta “对象”

response.schema.properties.links “对象”

response.schema.properties.errors "#/definitions/errors"

标签: javamavenswagger

解决方案


3.0.0-SNAPSHOT 有一个 V2 模型的错误。我们需要使用 swagger-codegen-maven-plugin 的 V2.3.1。

就我而言,我有 2 个模型(一个 V2 和一个 V3)。儿子我用 3 个模块(源代码生成器 V2、源代码生成器 V3 和我的项目)创建了一个 Maven 父级。

mvn clean install在我的父母身上,我的项目没有问题。


推荐阅读