假如有一个博客系统,有用户管理模块,文章模块,评论模块,并且使用 JWT Token (可以解析出 userId )
那用户的文章列表、文章详情、文章的评论应该怎样设计呢?
第一种:
/users/:userId/postsUserController/users/:userId/posts/:postIdUserController/users/:userId/posts/:postId/commentsUserController/users/:userId/posts/:postId/comments/:commentIdUserController
也就是全都放在 UserController 里
第二种:
/postsPostController/posts/:postIdPostController/posts/:postId/commentsCommentController/posts/:postId/comments/:commentIdCommentController
第二种:
/postsPostController/posts/:postIdPostController/comments?post-id=xxCommentController/comments/:commentIdCommentController
第一种的话,因为 userId 是从用户的 headers.token 中解析出来的,所以我觉得没必要前面加上 /users/:userId,除非需要管理功能,但是管理功能的 api 本来就是要跟用户端的分开来的。而且这样的话所有功能都放在 UserController 里了。
第二种的话在 CommentController 里前缀是 /posts 有点奇怪。
所以个人偏向第三种。