2009-06-11 76 views
0

我正在开发一个REST-ful webservice,并且我有一个关于HTTP PUT方法的问题。HTTP PUT的替代机构

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

这是可以接受的吗?

埃弗特

回答

2

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

您的网络服务应提供客户请求最能接受的响应,它能够提供。客户端请求应包含描述可接受内容类型的Accept头。如果你的服务不能提供任何在此标头中的内容类型,然后返回406 Not Acceptable

在你的情况,如果您的客户端请求GET包括application/xml在接受头则是罚款与application/xml回应,无论任何PUT的对请求的资源提出请求。

编辑:

status code definition406 Not Acceptable包括具有以下的说明:

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

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

0

RESTful服务应该使用正确的HTTP方法(GET,HEAD,PUT,DELETE或POST)的行动,确保任何作用域信息包含在所述URI,并确保该HTTP消息信封确实不包含另一个信封,即SOAP。

Roy Fieldings 2000 Ph.D. dissertation: Architectural Styles and the Design of Network-Based Software Architectures构成REST的基础。

+0

有趣的文章,但它并没有回答我的问题.. 例子: 我换上新的文章/文章/ firstpost,我得到的选项,使用的内容类型任一应用程序/ XML或应用程序的/形式数据。我选择后者。 然后我在文章上做了一个GET,并且我收到了application/xml表示形式。这可以吗? – Evert 2009-06-11 19:09:41