swagger-codegen:java.io.FileNotFoundException:无法读取API

时间:2014-04-16 16:53:52

标签: json code-generation swagger swagger-php

我正在尝试使用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一起正常工作。

1 个答案:

答案 0 :(得分:1)

将basePath更改为http://my.documentation.com/api/docs/而不是http://my.documentation.com/api/docs/v1.json解决了这个问题。