hollyw
(Holly W)
1
我刚才在用“获取公开用户列表”接口进行测试,需要分页以获取剩余用户。我使用了 load_more_directory_items 字段来获取下一页的路径,该路径显示为 /directory_items?order=days_visited&page=1&period=all。
然而,使用该路径时,我并未收到包含用户信息的正确 API 响应,而是得到了一些 HTML 内容。将其与原始接口对比后,我发现路径中 directory_items 后面似乎缺少了 .json。在下一页的路径中添加 .json 后,问题似乎得到了解决。这是否是一个 API 缺陷?
1 个赞
blake
(Blake Erickson)
2
您可能收到了 404 未找到 HTML 页面。
使用 API 时,请始终为所有 API 请求添加 .json 后缀,因为虽然大多数端点默认返回 JSON,但有些会返回 HTML。看起来这个路由没有默认设置,因此当未传递 .json 时,路由无法被找到。
您确实应该指定 .json 以避免出现此错误页面,但我在想,如果我们检测到 API 调用,是否应该返回实际的 404 HTTP 响应,而不是返回状态码 200 但包含无法阅读的 HTML 正文:thinking:?
5 个赞
hollyw
(Holly W)
4
好的,在初始 API 调用的端点中,我指定了 .json。我注意到的问题是,响应中 meta 下的 load_more_directory_items 没有指定 .json。
"meta": {
"last_updated_at": "2020-08-11T11:40:43.000Z",
"total_rows_directory_items": 1132,
"load_more_directory_items": "/directory_items?order=days_visited&page=2&period=all"
}
该值为:/directory_items?order=days_visited&page=2&period=all
而它应该是:/directory_items.json?order=days_visited&page=2&period=all
由于它不包含 .json,每次需要分页时,我都必须手动更新该字符串。
1 个赞
blake
(Blake Erickson)
5
啊,我现在明白你的意思了。这应该能很快修复。我今天就会着手处理。
2 个赞
blake
(Blake Erickson)
6
我已经为此推送了一个修复:
如果您执行 git pull 并重新构建,该修复应该会在您的实例中生效。感谢您提出这个问题
。
3 个赞