潜在的 API 错误 - “获取用户公共列表”端点

我刚才在用“获取公开用户列表”接口进行测试,需要分页以获取剩余用户。我使用了 load_more_directory_items 字段来获取下一页的路径,该路径显示为 /directory_items?order=days_visited&page=1&period=all

然而,使用该路径时,我并未收到包含用户信息的正确 API 响应,而是得到了一些 HTML 内容。将其与原始接口对比后,我发现路径中 directory_items 后面似乎缺少了 .json。在下一页的路径中添加 .json 后,问题似乎得到了解决。这是否是一个 API 缺陷?

1 个赞

您可能收到了 404 未找到 HTML 页面。

使用 API 时,请始终为所有 API 请求添加 .json 后缀,因为虽然大多数端点默认返回 JSON,但有些会返回 HTML。看起来这个路由没有默认设置,因此当未传递 .json 时,路由无法被找到。

您确实应该指定 .json 以避免出现此错误页面,但我在想,如果我们检测到 API 调用,是否应该返回实际的 404 HTTP 响应,而不是返回状态码 200 但包含无法阅读的 HTML 正文:thinking:?

5 个赞

好的,在初始 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 个赞

啊,我现在明白你的意思了。这应该能很快修复。我今天就会着手处理。

2 个赞

我已经为此推送了一个修复:

如果您执行 git pull 并重新构建,该修复应该会在您的实例中生效。感谢您提出这个问题 :slight_smile:

3 个赞