在restful api中,对于关联的查询应该使用什么id和什么样的描述?

发布于 2022-09-11 21:24:53 字数 304 浏览 15 评论 0

一个关联,比如说用户的某篇收藏文章,可以立马想到的是这个api的URL大概是这种形式

/api/users/{userId}/fav-articles/{id}

那么在这个URL中,id这个参数应该使用谁的id?
是用户-收藏文章这个关联表的id,还是文章的id?
并且,应返回的描述是这个关联,还是这篇文章?
如果是这个关联,那返回的应该只有两者的id以及比如收藏时间等的关联的信息。
而返回这篇文章的话,那就是文章标题、内容等信息了。
或者说两者都应该返回,那形式又应该如何呢?是嵌套还是并列?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撩起发的微风 2022-09-18 21:24:53

文章是某个用户收藏(自己只能看自己收藏)的,所以是某个用户下的资源。
一般情况下不会返回关联的资源。做法有两种:

  1. 现获取关联资源,该资源下有文章ID,然后GET /api/articles/文章ID读取文章
  2. 使用GET参数with
GET /api/users/1/favorites?with=articles // 获取收藏列表
POST /api/users/1/favorites // 新建收藏
PUT /api/users/1/favorites/关联ID // 编辑收藏
GET /api/users/1/favorites/关联ID?with=articles // 收藏详情
DELETE /api/users/1/favorites/关联ID // 删除收藏

我之前在慕课网有篇课程详细讲解了Restful API的设计流程,干货满满,有需要可以去看看https://www.imooc.com/learn/811

深海少女心 2022-09-18 21:24:53

新建表 FavArticle - id, userID, articleID.

打开用户收藏的文章列表:
/api/fav-articles/{userID}

然后文章列表某篇文章的连接地址
/api/articles/{articleID}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文