大家好,
我是 REST 和 Web API 的新手。我对如何为我的资源设计 URI 有点困惑。
鉴于我有一个包含以下资源的域:博客、帖子和用户。
Blog (1) ------ (0..*) Post (0..*) ------ (1) User
一个博客可以有很多帖子,每个帖子都与一个博客相关联。一个用户可以有很多帖子,每个帖子都与一个用户相关联。
对于博客和用户资源,URI 如下所示:
GET /blogs - get list of all blogs
GET /blogs/{id} - get blog by id
POST /blogs - create new blog
PUT /blogs/{id} - update blog
DELETE /blogs/{id} - delete blog
GET /users- get list of all users
GET /users/{id} - get user by id
POST /users - create new user
PUT /users/{id} - update user
DELETE /users/{id} - delete user
但是 Posts 资源呢?如何处理关联?我正在考虑以下替代方案 - 哪些是正确的,为什么?
-- 获取博客的所有帖子
1. GET /blogs/{id}/posts
or
2. GET /posts?blogid={id}
-- 在博客中创建新帖子
3. POST /blogs/{id}/posts
or
4. POST /posts (here I would then in the payload send the IDs of the resources this post is associated with. BlogId and UserId)
-- 按博客和用户获取所有帖子
5. GET /blogs/{id}/posts?userid={id}
or
6. GET /posts?blogid={id}&userid={id}
如果有人能在这里指出我正确的方向,我将不胜感激。