2015-10-14 3 views
0

Некоторая помощь нужна я пытался сгенерировать код чванство клиента с помощью команды для мобильного API ExpediaКураж Код ошибки генерации

поколения
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i https://www.expedia.co.jp/static/mobile/swaggerui/swagger.json -l java -o samples/client/expedia 

код выдает следующее сообщение об ошибке

[главная] ОШИБКА io.swagger.codegen.languages.JavaClientCodegen - нет Тип определено для свойств нулевой Exception в потоке «основной» java.lang.RuntimeException: не удалось создать модель «detailedRentalFare»

Атрибут типа внутри DetailRentalFare - это место, где он терпит неудачу. Я не уверен, почему это происходит с тех пор, как определяется тип данных. Я новичок в чванство любая помощь будет высоко оценена

+1

Пожалуйста, сообщите об ошибке на странице https://github.com/swagger-api/swagger-codegen/issues, в которой приведена спецификация для воспроизведения проблемы. –

ответ

0

Ответ предоставляется @ wing328

проблема вызвана неправильным типом для массива, например,

"detailedRentalFare": { 
    "properties": { 
    "rateTerm": { 
     "type": "string", 
     "description": "It can have the following values: HOURLY, DAILY, WEEKLY, WEEKEND, MONTHLY, TOTAL, TRIP" 
    }, 
    "rate": { 
     "$ref": "mobilePrice" 
    }, 
    "priceBreakdownOfTotalDueToday": { 
     "type": "array", 
     "items": { 
     "type": "rentalFareBreakdownItem" 
     } 
    }, 

Это должно быть

 "items": { 
     "$ref": "rentalFareBreakdownItem" 
     } 

или даже лучше

 "items": { 
     "type": "object", 
     "$ref": "rentalFareBreakdownItem" 
     } 

После исправления этого я был в состоянии генерировать код.

+0

Ссылка на текущую проблему https://github.com/swagger-api/swagger-codegen/issues/1388 – user2714010

1

От ответа @wing328, даже если это не ваша служба для исправления, вы все равно можете сгенерировать с нее клиента.

Во-первых, просто скачать JSON локально:
wget https://www.expedia.co.jp/static/mobile/swaggerui/swagger.json > expedia.json

Затем измените значение в формате JSON, что @ wing328 указал

Наконец, перезапустите CodeGen, используя статический файл в качестве источника:

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \ 
    -i ./expedia.json \ 
    -l java \ 
    -o samples/client/expedia 

Всегда приятно сообщить владельцу услуги о проблеме, поскольку исправление этого поможет в их принятии api.

Смежные вопросы