从REST API获取接受的标头
例如,在RESTAPI的上下文中,从REST API获取接受的标头,rest,Rest,例如,在RESTAPI的上下文中,Allow字段用于获取: 指定资源的有效操作 例如: Allow: GET, HEAD 是否也有一个众所周知的字段,以便获得接受头的列表?例如: Accept: application/vnd.company.api.com.foo+json;v=42, application/vnd.company.api.com.foo+xml;v=42 由客户机告诉服务它可以接受什么,因为如果它不能接受响应,客户机不能做很多事情(因为它不知道如何处理返回的媒体类型)
Allow
字段用于获取:
指定资源的有效操作
例如:
Allow: GET, HEAD
是否也有一个众所周知的字段,以便获得接受头的列表?例如:
Accept: application/vnd.company.api.com.foo+json;v=42, application/vnd.company.api.com.foo+xml;v=42
由客户机告诉服务它可以接受什么,因为如果它不能接受响应,客户机不能做很多事情(因为它不知道如何处理返回的媒体类型) 如果服务器无法创建符合的资源表示,则可以执行以下两项操作之一:
- 发送406不可接受
- 发送不符合Accept标头(HTTP 1.1)的响应
/
的请求可能会指定一个接受头text/html
,并收到以下响应:
<html>
<head>
<link rel="foo" type="application/vnd.company.api.com.foo+json;v=42" href="http://v42.api.com/foos/3713678123" />
<link rel="foo" type="application/vnd.company.api.com.foo+json;v=43" href="http://v43.api.com/foos/3713678123" />
</head>
</html>
由客户机来告诉服务它可以接受什么,因为如果客户机不能接受响应,它就不能做很多事情(因为它不知道如何处理返回的媒体类型) 如果服务器无法创建符合的资源表示,则可以执行以下两项操作之一:
- 发送406不可接受
- 发送不符合Accept标头(HTTP 1.1)的响应
/
的请求可能会指定一个接受头text/html
,并收到以下响应:
<html>
<head>
<link rel="foo" type="application/vnd.company.api.com.foo+json;v=42" href="http://v42.api.com/foos/3713678123" />
<link rel="foo" type="application/vnd.company.api.com.foo+json;v=43" href="http://v43.api.com/foos/3713678123" />
</head>
</html>
您真的需要自动发现此信息吗?通常,受支持的媒体类型是带外信息,在您的情况下(因为您使用的可能是未注册的媒体类型),它肯定是带外信息。我同意,因为在给定的示例中,foo
不是超媒体类型。但是,自动发现此信息的能力可能对长期有用,API(无任何版本)可能首先使用HAL,然后在2年后切换到Siren。。。我认为,如果在API的整个生命周期中都使用特定的超媒体语言,那么太多的反管道操作将是危险和困难的。明天又是新的一天。通过使用根菜单选项作为播发其支持的媒体类型的位置,服务器不仅可以播发其支持的媒体类型,还可以在更细粒度的级别上进行播发(因为您可以根据链接的资源改变支持的媒体类型)。您真的需要自动发现此信息吗?通常,受支持的媒体类型是带外信息,在您的情况下(因为您使用的可能是未注册的媒体类型),它肯定是带外信息。我同意,因为在给定的示例中,foo
不是超媒体类型。但是,自动发现此信息的能力可能对长期有用,API(无任何版本)可能首先使用HAL,然后在2年后切换到Siren。。。我认为,如果在API的整个生命周期中都使用特定的超媒体语言,那么太多的反管道操作将是危险和困难的。明天又是新的一天。通过使用根菜单选项作为播发其支持的媒体类型的位置,服务器不仅可以播发其支持的媒体类型,还可以在更细粒度的级别上进行播发(因为您可以根据链接的资源改变支持的媒体类型)。