2017-05-23 1 views
0

swagger-codegen을 사용하여 주 API 정의 파일과 별도의 파일에 정의 된 json 스키마 용 클래스를 생성 할 수 없습니다. 내가 사용하고 명령은 다음과 같습니다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 -하지만 실제로는 모델 클래스가 생성되지 않습니다. 또한 자세한 로깅은 시작 부분에 다음과 같은 권한을 기록하기 때문에 참조를 잘못 해석하고 어떤 이유로 $ 정의에 # 정의를 추가합니다.

[주] 정보 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 
관련 문제