我正在努力寻找这个问题的答案(也许是因为我没有正确地问这个问题)......
我正在构建 API 以公开我正在创建的基本社交网络服务的资源。
我的理解是,API 中的 URL 结构本质上是一个层次结构,类似于目录的结构。我认为这意味着我可以有多个端点来访问相同的资源或资源链接集合。
例如:
我有一个端点www.domain.api.org/users/{:uid}/posts
这将返回用户发送的所有帖子或用户被标记的所有帖子。似乎还可以,但是如果我有一个端点,例如:www.domain.api.org/posts
当使用 http GET 访问时,将返回所有公开帖子(即所有用户的帖子加上他的 friend 和公开帖子)。
不同之处在于第一个 URL 指向用户拥有的资源,而第二个指向公共(public)资源(其中当然包括用户的帖子)
这些可以吗,还是我做错了/不太明智?
重申一下,我可以有多个端点指向同一资源的不同上下文/ View 吗?
最佳答案
基本上应该避免相同资源的多个端点。但是,在这种特殊情况下,它确实有意义。
你可以做的是引入可选的查询参数userId
到以下端点:
www.domain.api.org/posts/?userId=<userId>
如果这替代了您提到的第一个端点,那就是要走的路。
关于api - 多个端点以公开同一资源的不同 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34169989/