【发布时间】:2015-01-28 05:07:46
【问题描述】:
假设我有一个名为 group 的资源,其表示形式如下:
{
"id": 1,
"name": "Superheroes"
"_links": {
"self": {
"href": "http://my.api.com/groups/1"
}
}
}
现在假设我想通过POSTing 到/persons/1 创建一个新的person 实例。我应该为请求正文使用以下哪一项:
使用 ID
{
"name": "Batman",
"groupId": 1
}
使用链接
{
"name": "Batman",
"group": "http://my.api.com/groups/1"
}
当我持久化person 实例时,我使用第一种方法直接访问 id 以查找相关资源或最终将 id 存储在数据库中。但是使用另一种方法,我要么必须从 URI 中提取 id,要么按照链接加载相关资源,然后找出它的 id。我真的不想将 URI 存储在数据库中。
使用后一种选项,看到服务器控制了URI的结构,我可以从链接中解析出id吗?将链接返回到服务器本身似乎很奇怪,因为此时我们已经可以直接访问信息(我们只需要 id)。
所以总结一下,这些选项中哪个最好?
- 直接使用id。
- 使用链接,但解析出 id。
- 使用链接,但是访问链接获取资源实例,然后获取id。
【问题讨论】:
标签: api rest restful-architecture