用于获取嵌套对象字段的 Rest api 设计

标签 rest api

假设我们有下面的类(class)

class Blog {
    Integer id;
    List<Post> posts;
}

class Post {
     Integer id;
     List<String> tags;
}

如果我想为某个博客的所有标签创建一个端点,什么是正确的选项。并且返回类型是List。

博客/{blog-id}/posts?field=tags

博客/{blog-id}/post-tags

博客/{blog-id}/posts/tags

博客/{blog-id}/post/tags

或者任何建议都可以。哪一个最合适?

最佳答案

在您列出的那些中,我会根据用例选择第一个或第二个。

blogs/{blog-id}/posts?field=tags:这表示您只需要集合中项目的 tags 字段。我希望响应中每个帖子仍然有一个对象,但只有 tags 字段存在。如果您想要一个不同的列表,则需要在客户端中处理这些列表。

blogs/{blog-id}/post-tags:这将用于返回所应用的单个、不同的标签列表。

这就是我不和其他人一起去的原因:

blogs/{blog-id}/posts/tags:这可能会被视为标题为 tags 的帖子,而不是返回帖子上的所有标签。

blogs/{blog-id}/post/tags:除了上述内容之外,这还意味着单个帖子,而不是集合。

关于用于获取嵌套对象字段的 Rest api 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607812/

相关文章:

javascript - 如何处理 JavaScript 中的唯一 API key ?

rest - 亚马逊 AWS 机器学习 HTTP 请求

python - 混合 Web 应用程序中的 RESTful 身份验证

javascript - 如何将所有选中的checkboxID传递给REST

c# - 使用 UriTemplate 将枚举和自定义类传递给 WCF RESTful 服务

javascript - 使用 Blogger API 列出所有帖子

php - 通过 API 清除最大 CDN

c# - 在 C# 中解析 XML

c# - 如何使用 web api 获取资源的可用性?

python - 尝试使用 python API 在测试网上发行 token - Neblio