假如有一个博客系统,有用户管理模块,文章模块,评论模块,并且使用 JWT Token (可以解析出 userId )
那用户的文章列表、文章详情、文章的评论应该怎样设计呢?
第一种:
/users/:userId/posts
UserController/users/:userId/posts/:postId
UserController/users/:userId/posts/:postId/comments
UserController/users/:userId/posts/:postId/comments/:commentId
UserController也就是全都放在 UserController 里
第二种:
/posts
PostController/posts/:postId
PostController/posts/:postId/comments
CommentController/posts/:postId/comments/:commentId
CommentController第二种:
/posts
PostController/posts/:postId
PostController/comments?post-id=xx
CommentController/comments/:commentId
CommentController第一种的话,因为 userId 是从用户的 headers.token 中解析出来的,所以我觉得没必要前面加上 /users/:userId
,除非需要管理功能,但是管理功能的 api 本来就是要跟用户端的分开来的。而且这样的话所有功能都放在 UserController 里了。
第二种的话在 CommentController 里前缀是 /posts
有点奇怪。
所以个人偏向第三种。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.