1

我正在开发一个 REST-ful 网络服务,我对 HTTP PUT 方法有疑问。

我想允许人们使用应用程序/表单数据请求正文提交内容。但是,默认响应将在 application/xml 中。

这可以接受吗?

翻转

4

2 回答 2

3

内容类型仅在单个请求的范围内很重要。他们所做的只是描述正在发送的内容的格式。

您的 Web 服务应提供其能够提供的客户端请求最可接受的响应。客户端请求应包含一个描述可接受内容类型的 Accept 标头。如果您的服务无法在此标头中提供任何内容类型,则返回406 Not Acceptable

在您的情况下,如果您的客户端GET请求包含application/xml在 Accept 标头中,那么application/xml无论对PUT请求的资源发出任何请求,都可以使用 响应。

编辑:

状态代码定义包括406 Not Acceptable以下注释:

注意:HTTP/1.1 服务器可以根据请求中发送的接受头返回不可接受的响应。在某些情况下,这甚至可能比发送 406 响应更可取。鼓励用户代理检查传入响应的标头以确定它是否可以接受。

因此,您可以随时返回application/xml

于 2009-06-12T00:11:52.233 回答
0

RESTful 服务应该对操作使用正确的 HTTP 方法(GET、HEAD、PUT、DELETE 或 POST),确保任何范围信息都包含在 URI 中,并确保 HTTP 消息信封不包含另一个信封,即 SOAP。

罗伊菲尔丁斯 2000 博士 论文:架构风格和基于网络的软件架构的设计构成了 REST 的基础。

于 2009-06-11T18:13:16.777 回答