2017-05-23 8 views
0

メインAPI定義ファイルとは別のファイルで定義されたjsonスキーマのクラスを生成するswagger-codegenを取得できません。私が使っているコマンドは次のとおりです。swagger-codegenは、参照された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" 
    } 
    } 
}}} 

私はコード生成がPer son.java - 実際のところ、モデルクラスは生成されません。また、冗長なロギングは開始時に以下の権利をログに記録します。これにより、参照が誤って解釈され、何らかの理由で#defineが$ refにプリペンドされているように見えます。

[メイン] INFO 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" 
      } 
      } 
     } 
     } 
    } 
    } 
} 
を読んで、何に住んでいるスキーマ定義を参照する正しい方法がありますローカルファイルですか?

+0

あなたは闊歩codegenののGitHubのリポジトリで[問題を開く](https://github.com/swagger-api/swagger-codegen/issues/new)したい場合があります。 – Helen

+0

完了:https://github.com/swagger-api/swagger-codegen/issues/5693 – subodh

答えて

0

$ refに./を追加すると動作します。

./person.json#/definitions/person 
関連する問題