Swagger Error预期类型字符串但找到类型integer

时间:2015-04-29 15:31:49

标签: java yaml swagger

我最近开始使用swagger为RESTful apis生成文档。我使用yamlbeans-1.09.jar将我的Java DTO转换为yaml文件。 一切正常,yaml甚至可以在http://www.yamllint.com/上正确验证,但仍然在使用Swagger界面进行测试时,它会出现错误 "预期类型字符串但找到类型整数&#34 ; "没有枚举匹配:2" 无论我在哪里提到swagger:文件中的2.0。

我的示例yml文件是:

basePath: /employment
host: api.xxxx.com
schemes: 
    - https
swagger: 2.0
info: 
    title: API Doc
    description: Description for the info goes here
    version: 1.0.0

在swagger版本之前,它总是倾向于给出错误。任何帮助将不胜感激。

编辑:我已将swagger版本定义为java代码中的字符串,并按如下所述编写:

HashMap<String, Object> rootElementsForYml = new HashMap<String, Object>();
rootElementsForYml.put(SWAGGER, "2.0");
rootElementsForYml.put(HOST, "api.xxxx.com");
rootElementsForYml.put(BASEPATH, basePath);
rootElementsForYml.put(SCHEMES, new String[]{"https"});

但它仍然没有给出任何结果和相同的错误。

1 个答案:

答案 0 :(得分:1)

那是因为版本值是字符串而不是数字。只需指定2.0即可解释为数字。用"2.0"之类的引号包裹它,它会正常工作。