2012-04-26 79 views
1

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

我需要找出的是;创建这些服务时是否有任何经验法则?做PUT或GET时常见的做法是什么?消费者是否期望回复,状态或对象?

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

那些已经这么做了一段时间的任何建议?

感谢

回答

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)是最常见的,但您可能不想支持所有这些。

REST的吸引力在于它的简单性;确保你保持这种方式。简单起见,记录服务很简单,这是真正的关键,而不是你正在使用POST或PUT。