在执行PATCH请求时,是否可以在http标头中传递json字符串以向服务器提供选项?

时间:2015-04-10 21:51:30

标签: json rest http

在我的restful服务中,我想允许用户使用PATCH请求更新资源的某些字段。但是,要求在更新某些字段时,我必须根据提供的选项在后端执行某些操作。我不想将选项与请求正文中的主要数据混合,因此我提出了两种可能的解决方案。

  1. 通过查询字符串
  2. 传递选项
  3. 通过http标头将选项作为json string传递。
  4. 由于在某些情况下选项可能包含一些相对较大的文本,因此我决定通过http标头传递选项。

    以前有人这样做过吗?我以后可能遇到任何可能的问题吗?这是好的做法吗?如果没有,我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

我会说这取决于你想要多少REST纯粹主义者。

我更倾向于使用正文传递选项,因为PATCH方法已明确定义了语义,但没有定义的数据格式,因此,没有什么可以阻止您在{{1}中发送选项因为你必须记录有效载荷格式。

如果这不是你的选择,我会说通过查询字符串传递选项是最不可取的选项,因为URI是原子的,包括查询字符串,你正在有效地更改标识符。

使用自定义HTTP标头更容易接受,但您必须记录该标头应该如何工作。一个小问题是HTTP协议未定义标头长度,但对于大多数实现,限制至少为几KB,因此这可能不是一个真正的问题。