我正在尝试使用swagger-codegen
根据我的Swagger资源文件生成代码。但是,我在尝试生成代码时遇到以下错误:
base path is http://my.documentation.com/api/docs/v1.json
java.io.FileNotFoundException: http://my.documentation.com/api/docs/v1.json/authenticateUser
似乎swagger-codegen
试图通过在v1.json
之后附加操作名来读取方法定义,但我不知道为什么,因为操作名在v1.json
本身内定义:
{
"basePath":"https://my.api.com/v1",
"swaggerVersion":"1.2",
"apiVersion":"1.0.0",
"resourcePath":"v1",
"apis":[
{
"path":"/authenticateUser",
"description":"Authenticates a user into the API",
"operations":[
{
"method":"GET",
"summary":"Authenticates a user into the API",
"nickname":"authenticateUser",
"parameters":[
{
"paramType":"query",
"name":"username",
"type":"string",
"required":true,
"description":"Name of of user to authenticate"
},
{
"paramType":"query",
"name":"password",
"type":"string",
"required":true,
"description":"User's password"
}
],
"notes":"Returns access token in the response object"
}
]
},
...
]
}
我不完全确定swagger-codegen
期望的格式。 API的basePath和API的文档是否必须相同?请注意,文档的文档托管在与API本身不同的基本路径上。我不确定这是否重要。
我还要注意,我的swagger资源文件v1.json
是使用swagger-php
生成的,并且与swagger-ui
一起正常工作。
答案 0 :(得分:1)
将basePath更改为http://my.documentation.com/api/docs/
而不是http://my.documentation.com/api/docs/v1.json
解决了这个问题。