我最近开始使用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"});
但它仍然没有给出任何结果和相同的错误。
答案 0 :(得分:1)
那是因为版本值是字符串而不是数字。只需指定2.0
即可解释为数字。用"2.0"
之类的引号包裹它,它会正常工作。