REST服务器应该在POST上发送整个对象还是只发送id?

时间:2013-11-26 22:07:14

标签: json rest bandwidth

给定一个RESTful服务器后端,它使用对象的JSON编码。 GET请求返回像{ id: 42, name: 'Peter', age: 28 }这样的对象。现在我想知道插入新对象的POST请求是否应该以相同的形式返回整个对象,或者只返回创建的id。

例如,客户端发送此请求以在数据库中创建新条目。

method:  POST
url:     http://example.com/persons
type:    application/json
content: { name: 'Max', age: 35 }

服务器是应该使用{ id: 43, name: 'Max', age: 35 }还是仅使用创建的ID 43{ id: 43 }进行回复?

在这个最小的例子中,我猜测带宽并不重要,但实际上,编码地理区域的属性较长。

3 个答案:

答案 0 :(得分:2)

REST是一种架构设计,没有关于响应数据应该是什么的硬性规定

答案 1 :(得分:1)

我不知道有任何指导方针。就个人而言,我认为返回客户端无法知道的数据可能是有用的 - 当然主要是新的ID,但服务器可能已经规范化或以其他方式更改了其他数据。

但最终,它只取决于客户想要对数据做些什么。如果要返回任何内容,我会使用一种可以进一步扩展的格式,而不仅仅是数字ID或类似内容。

答案 2 :(得分:0)

理想情况下,创建操作应该将URI返回给调用者,所以我会说什么是标识符,返回这是最好的做法。