扬鞭代码生成错误
一些帮助需要我试图使用命令用于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问题提供
答案是不正确类型数组,例如引起
"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"
}
纠正这个我能够生成代码后。
链接到实际问题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。
请在https://github.com/swagger-api/swagger-codegen/issues上打开一个问题,并附上重现问题的规范。 –