用于发布数据的REST标准

时间:2014-06-17 11:06:55

标签: api http rest ember.js servicestack

我正在使用Ember。

由ember发布的模型是

{
    "user": {
        "firstName": "Vivek",
        "lastName": "Muthal"
    }
}

Ember已将数据包装到"user"对象中 但我写的服务只接受{"firstName":"string","lastName":"string"}

所以我的问题是REST标准是否指定仅在包装对象中发送/接收数据? 请参考,以便我可以相应地更改服务 否则我会修改余烬以使用我当前的服务。感谢。

3 个答案:

答案 0 :(得分:0)

我认为资源是User,因此JSON应该代表User。假设您有这个URI架构。

GET /host/users/{userId}
PUT /host/users/{userId}
POST /host/users

当我们GET时,我们期望代表A JSON的{​​{1}}

User

没有必要指定资源名称,因为我们已经在{ "firstName": "Vivek", "lastName": "Muthal" } 请求中提到过GET的相同内容,因此无需在请求正文中提及资源名称,因为它在请求POST中指定。所以没有,不需要URI密钥。

答案 1 :(得分:0)

REST定义了uniform interface constraint。此约束表明您必须使用标准解决方案在服务和客户端之间创建统一的接口。这样客户端就会被服务的实现细节分离,因为我们使用的标准不是由服务器维护的......

要简化它,您可以使用任何标准MIME类型,或定义供应商特定的MIME类型。我强烈建议您使用现有的超媒体格式,如JSON-LD + Hydra或HAL。我想这种序列化是特定于余烬的东西。

答案 2 :(得分:0)

没有。您在HTTP请求正文中发送的数据没有预定义格式。好吧,HTTP RFC对您发送的数据设置了技术限制,但格式完全取决于您。

因此,您可以根据需要格式化数据。您只需要表示资源。你需要考虑用户的JSON是否应该清楚地将对象标记为“用户”,我认为这样做基本上是多余的。