PUT REST API方法接受无关数据是否有意义?

时间:2013-10-29 18:42:54

标签: api rest httprequest put

我的JavaScript应用程序使用我正在开发的RESTful API。

通过我的UI编辑和保存记录时,我对/ widget /:id执行PUT,传递完整的数据对象,然后替换并返回整个记录。典型的PUT方法。

但是,我的UI数据模型有时会包含小部件范围之外的额外数据项;例如,数据模型可能包含

  • ID
  • 名称
  • CATEGORY_ID
  • 类别< ---额外数据
    • ID
    • 名称

如您所见,“类别”是额外数据。如果我序列化我的数据模型(例如,model.toJSON()),那么类及其属性将包含在序列化中。

所以,我的问题是:从理论上的REST角度来看,将上述数据的所有发送到PUT API方法并期望删除方法是可以的在保存之前输出无关的数据密钥?或者,客户端是否应在发出PUT请求之前始终删除额外数据?

1 个答案:

答案 0 :(得分:1)

通过向URI发送PUT请求,客户端告诉服务器他希望该资源的服务器状态如何。服务器决定服务器状态是如何以及是否被chaged。他有两个基本选择。

  1. 检查请求正文是否符合服务器Accepts的内容。如果他不接受任何application/json而只接受application/vnd.your.content.type+json,他将拒绝category的JSON,该JSON可能对此类型无效。
  2. 接受请求并默默地丢弃额外的category
  3. 选项2可以:)