Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在执行补丁请求时,可以在http头中传递json字符串以向服务器提供选项吗?_Json_Rest_Http - Fatal编程技术网

在执行补丁请求时,可以在http头中传递json字符串以向服务器提供选项吗?

在执行补丁请求时,可以在http头中传递json字符串以向服务器提供选项吗?,json,rest,http,Json,Rest,Http,在我的restful服务中,我希望允许用户使用补丁请求更新资源的某些字段。但是,在更新某些字段时,需要根据提供的选项在后端执行某些操作。我不想将选项与请求主体中的主要数据混合在一起,因此我提出了两种可能的解决方案 通过查询字符串传递选项 通过http头将选项作为json字符串传递 因为在某些情况下,选项可能包含一些相对较大的文本,所以我决定通过http头传递选项 以前有人这样做过吗?有什么可能的问题我以后可以面对吗?这是一种好的做法吗?如果不是的话,我怎么才能做到这一点呢?我想说,这取决于你想成

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

  • 通过查询字符串传递选项
  • 通过http头将选项作为json字符串传递
  • 因为在某些情况下,选项可能包含一些相对较大的文本,所以我决定通过http头传递选项


    以前有人这样做过吗?有什么可能的问题我以后可以面对吗?这是一种好的做法吗?如果不是的话,我怎么才能做到这一点呢?

    我想说,这取决于你想成为一个多么纯粹的休息者

    我更愿意将选项与正文一起传递,因为
    PATCH
    方法具有明确定义的语义,但没有定义的数据格式,因此,没有任何东西阻止您在
    PATCH
    正文中发送选项,因为您无论如何都必须记录有效负载格式

    如果这不是您的选项,我认为通过查询字符串传递选项是最不可取的,因为URI是原子的,包括查询字符串,并且您实际上在更改标识符


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

    请更详细地描述为什么您认为“选项”不是您在
    补丁
    请求正文中发送的资源表示的一部分;但如果您想尝试JSON编码的头字段,您可能需要查看