[英]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.