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"
}
}
}
}
}
}
}
を読んで、何に住んでいるスキーマ定義を参照する正しい方法がありますローカルファイルですか?
あなたは闊歩codegenののGitHubのリポジトリで[問題を開く](https://github.com/swagger-api/swagger-codegen/issues/new)したい場合があります。 – Helen
完了:https://github.com/swagger-api/swagger-codegen/issues/5693 – subodh