RESTful Web服务规则

时间:2012-04-26 21:56:04

标签: jersey jax-rs restful-architecture

我正在创建一些生成和使用XML的Web服务。计划是在Tomcat 6.x上使用Jersey 1.x和JAXB。

我需要知道的是;在创建这些服务时是否有任何规则要遵循?进行PUT或GET时有哪些常见做法?消费者是否期望返回响应,状态或对象?

我一直在阅读并查看所有这些场景的示例,但每个作者/博客以及如何以不同方式解决这些相同的场景。

那些已经做过一段时间的人的建议了吗?

由于

1 个答案:

答案 0 :(得分:1)

每个人似乎都同意或不同意的一些事情:

  1. 无效请求返回HTTP 400代码。 500只应用于'意外例外'。
  2. 虽然没有明确的规范,但请尝试使用Clean URLs。除了提到的好处之外,如果您需要,还可以更轻松地设置反向代理。
  3. 在HTTP方法上,虽然似乎就GET和DELETE达成了一致意见,但是关于哪个PUT或POST确实创建或更新存在争议。见this discussion。最后,一些代理或Web服务器(IIS任何人)并不总是轻松处理除GET和POST之外的任何其他内容,因此您必须使用额外的X-HTTP-Method-Override标头来指定您的实际方法。
  4. 您应该尊重Accept标头并返回所请求类型的内容。文本类型(XML,JSON,纯文本和HTML)是最常见的,但您可能不想支持所有这些。
  5. REST的吸引力在于其简洁性;确保你保持这种方式。简单,记录服务很容易,这是真正的关键,而不是你使用POST或PUT。