restful形式的路由的命名重复怎么办?

发布于 2022-09-05 02:10:45 字数 401 浏览 24 评论 0

比如这个路由
GET /users/{id}/comments
现在说用户的页面上有一个留言板,打算使用一个comment组件
用户在一些帖子中发布的回复,使用的也是这个comment组件
数据库设计的时候这两个comment组件使用的是同一个数据表(多态关联)(这点倒是不必担心)
重点就是说,这个路由就含义冲突了:
显示的是用户留言板(别人发的)呢
还是显示用户在帖子中的回复呢

所以说,如何解决这个问题,以restful的形式,区分开这两个路由

抱歉,我是个处女座、、、(但是说也想找到这个问题的最佳解决方式)

其实说,这个问题还有另外一个场景,就是说如何区分follow的我关注的和关注我的。
GET /users/{id}/follows
这条路由是显示我关注的呢还是关注我的呢

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

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

发布评论

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

评论(3

伤感在游骋 2022-09-12 02:10:46

对于你的第一个场景,我觉得在数据表里肯定会有一个字段标识出事用户留言板的还是用户帖子中的,这个字段我暂称为type,所以可以写成GET /users/{id}/comments/{type}

另一个场景,可以用参数type指定是我关注的还是关注我的,可以写作GET /users/{id}/follows/{type}
当然还有另外一种方法,把我关注的和关注我的分开

GET /users/{id}/follows -> 我关注的
GET /users/{id}/followers -> 关注我的
烦人精 2022-09-12 02:10:46

用户页面的留言板你可以使用message嘛
followers是关注我的
following是我关注的
多给几个英文单词不就行了。

我看题主还不太像改名。其实吧,改名 第一个原因是它能从根本上解决问题;第二个原因是,方便后续维护者,使用容易混淆的名字迟早是会出问题。

佼人 2022-09-12 02:10:46

给用户留言和给帖子留言是操作 2 个不同的资源,资源用 URI 来定位,不同的资源使用不同的 URI,你使用相同的 URI 来操作不同的资源,这是不对的。

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