Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Rest 使用Accept请求头在JSON和html上进行分支_Rest_Http_Http Headers_Http Accept Header - Fatal编程技术网

Rest 使用Accept请求头在JSON和html上进行分支

Rest 使用Accept请求头在JSON和html上进行分支,rest,http,http-headers,http-accept-header,Rest,Http,Http Headers,Http Accept Header,查看使用httpAccept头来分支服务器是否应该返回资源的html或json。我正在考虑使用: Accept: application/json 但进一步的研究和阅读,标准似乎是: Accept: application/vnd.company.app+json 这样做的好处是什么?为什么不直接使用application/json而不使用厂商前缀company和app?主要区别在于application/json是一个通用定义。仅仅因为请求文档的格式为“application/json”,

查看使用http
Accept
头来分支服务器是否应该返回资源的html或json。我正在考虑使用:

Accept: application/json
但进一步的研究和阅读,标准似乎是:

Accept: application/vnd.company.app+json

这样做的好处是什么?为什么不直接使用
application/json
而不使用厂商前缀company和app?

主要区别在于application/json是一个通用定义。仅仅因为请求文档的格式为“application/json”,并不意味着应用程序仍然可以使用它

在大多数情况下,在服务器端,您会发现自己正在注册由通用序列化/反序列化库(如Jackson)提供的媒体类型,因此,它所起的实际作用很小——如果所提供的文档不可反序列化到您期望的类,那么将出现一个异常,该异常将适时转换为40x响应代码

但是,确保您的服务器和客户端都希望使用相同的语言是很有用的。这可以被记录下来,它可以帮助定位问题,或者来自期望API的“旧”版本的外部客户端,或者来自与不兼容的客户端-服务器组合相关的内部问题