扬鞭代码生成错误

问题描述:

一些帮助需要我试图使用命令用于Expedia的移动API扬鞭代码生成错误

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 - 没有为线程“main”中的属性null异常定义的类型java.lang.RuntimeException:无法生成模型 'detailedRentalFare'

DetailedRentalFare内的type属性是失败的地方。我不确定为什么因为数据类型被定义而失败。我是新手招摇任何帮助将不胜感激

通过@ wing328

问题提供

+1

请在https://github.com/swagger-api/swagger-codegen/issues上打开一个问题,并附上重现问题的规范。 –

答案是不正确类型数组,例如引起

"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

@wing328的答案,即使这不是你的服务来解决,你仍然可以从它生成一个客户端。

首先,只是在本地下载JSON:
wget https://www.expedia.co.jp/static/mobile/swaggerui/swagger.json > expedia.json

接下来,修改值在JSON是@ wing328指出

最后,使用静态文件作为源重新运行代码生成:

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

让服务所有者也知道这个问题总是不错的,因为修复它将有助于他们采用api。