簡體   English   中英

swagger-codegen不為引用的json文件中定義的模式生成類

[英]swagger-codegen not generating classes for schemas defined in referenced json files

我無法獲得swagger-codegen為在與主API定義文件分開的文件中定義的json模式生成類。 我正在使用的命令是:

$ java -jar swagger-codegen-cli-2.2.2.jar generate -i api.json -l java -o gen -v

這是api.json的樣子:

{
"swagger": "2.0",
"info": {
    "version": "1.0.0",
    "title": "Simple API",
    "description": "A simple API to learn how to write OpenAPI Specification"
},
"schemes": [
    "https"
],
"host": "simple.api",
"basePath": "/openapi101",
"paths": {
    "/persons": {
        "get": {
            "summary": "Gets some persons",
            "description": "Returns a list containing all persons.",
            "responses": {
                "200": {
                    "description": "A list of Person",
                    "schema": {
                  "$ref" : "person.json#/definitions/person"                    

    }
                    }
                }
            }
        }
    }

}

此處引用的person.json文件與api.json並存(即處於同一級別),並包含以下內容:

{"definitions": {
“person”: {
  "type": "object",
  "description": "",
  "properties": {
    "requestId": {
      "type": "string",
      "example": "1234"
    }
  }
}}}

我希望代碼生成會生成一個名為Person.java的類,但實際上不會生成任何模型類。 同樣,冗長的日志記錄也會在開始時記錄以下正確的信息,這使我認為它在錯誤地解釋了引用,並且由於某種原因在$ ref之前加上了#definitions。

[main]信息io.swagger.parser.Swagger20Parser-從api.json中讀取

{
  "swagger" : "2.0",
  "info" : {
    "description" : "A simple API to learn how to write OpenAPI Specification",
    "version" : "1.0.0",
    "title" : "Simple API"
  },
  "host" : "simple.api",
  "basePath" : "/openapi101",
  "schemes" : [ "https" ],
  "paths" : {
    "/persons" : {
      "get" : {
        "summary" : "Gets some persons",
        "description" : "Returns a list containing all persons.",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "A list of Person",
            "schema" : {
              "$ref" : "#/definitions/person.json#/definitions/person"
            }
          }
        }
      }
    }
  }
}

有人知道這是怎么回事,以及引用存在於本地文件中的架構定義的正確方法是什么?

在$ ref中添加./使其起作用。

./person.json#/definitions/person

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM