假设我们有下面的类(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/