json - Swagger UI 2.1卡住 "fetching resource list"

标签 json yaml swagger swagger-ui

我有一个最近创建的RESTful API,几个月后我将不记得如何使用它。我决定使用Swagger记录我的API,但是我疯了。

我使用http://editor.swagger.io/创建了YAML文件,然后将其转换为Swagger可以使用的JSON文件。当我将文件放入Swagger UI时,它只是停留在fetching resource list: localhost/swagger.json上,控制台显示Uncaught TypeError: Cannot read property '$ref' of undefined


我正在使用Swagger UI的2.1.0-alpha.5版本。

这是我的规范文件:

Swagger :“2.0”
信息:
标题:TITLE
说明:BLAH,BLAH,BLAH,ETC
版本:“1.0b”
主持人:api.example.com
方案:
-http
basePath:/v1
产生:
-应用程序/json
路径:
/match.json:
得到:
#summary:匹配数据
描述:用于获取有关比赛的数据
参数:
-名称:id
在:查询
描述:游戏的比赛ID
必填:true
类型:整数
格式:int32
-名称:键
在:查询
描述:用于身份验证的API key 。
必填:true
类型:字符串
回应:
200:
描述:返回匹配数据
架构:
类型:数组
项目:
$ ref:'#/definitions/MatchData'
默认:
说明:意外错误
架构:
$ ref:'#/definitions/Error'

定义:
MatchData:
特性:
信息:
类型:整数
格式:int64
描述:有关比赛的一般信息
时间:
类型:整数
格式:int64
描述:有关开始/结束时间的信息
统计资料:
类型:数组
格式:int64
描述:比赛数据
错误:
必需的:
-errorID
- 信息
特性:
错误编号:
类型:字符串
描述:错误ID。
信息:
类型:字符串
描述:有关错误的信息。

最佳答案

我已经测试了您的规范,虽然没有遇到与您相同的错误,但该规范确实无效。

如果查看#/definitions/MatchData/properties/stats,则会看到您定义了type: array,但是您没有在其旁边提供“items”属性来说明它是哪个数组(这是强制性的)。您可能打算像上面的属性一样使用type: integer,它与format: int64一起使用。

由于我不知道您打算提供什么,因此很难给出一个准确的解决方案,但是如果您添加了您打算做什么的评论,我可以提供更详细的答案。

经过一些额外的测试,我发现UI中存在一个错误。进行修改并加载规范后,除非单击Expand Operations链接,否则操作本身不会扩展。我已为此打开了一个issue,请随时在此处关注。

关于json - Swagger UI 2.1卡住 "fetching resource list",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046475/

相关文章:

ruby-on-rails - 将数据从 JSON API 播种到 Ruby on Rails APP

yaml - Ansible lineinfile insertafter 在文件末尾注入(inject)行

json - 如何引用顶级数组 json 的模式

android - android中的图像幻灯片放映

php - mysql 版本 5.1.73 不支持 JSON_CONTAINS

bash - Azure Pipeline 将参数从一项作业传递到另一项作业

python - PyYaml 合并两个 yaml 文件

c# - 将日期作为字符串传递 - 防止 json.net 解析日期

java - 如何更改 Java Spring API 中的默认 Swagger 2 api 文档名称

swagger - 如何将 JSON 架构合并到我的 OpenAPI 文件中?