宣称支持 REST 的 Web 框架到底有多 REST?

  • Dilip Krishnan
  • 张龙

2010 年 7 月 13 日

话题:JavaSOA.NETRubyREST语言 & 开发架构

目前,有不少 Web Services 平台与应用框架都对 RESTful 服务提供了不同程度的支持。近日,Stefan Tilkov 撰写了一篇文章,列举出了一系列标准,可以作为评估这些框架与平台的起始点。

他认为,从较高层次上来说,必须问的问题有(回答“是”的越多,框架越接近于理想的 REST Web 应用框架):

    • 框架是否遵守一条 HTTP 消息并非仅仅包含一个 URI 的原则?也就是说,分发是不是至少要基于 HTTP 谓词、URI、Content-type 与 Accept headers 呢?
    • 可否使用同样的业务逻辑在响应中返回不同的内容类型呢?
    • 是否支持对条件请求的检查呢?
    • 如果后端逻辑没有设定,是否会自动计算 ETags 呢?
    • 作为框架的使用者,是否能够轻松读取所有的 HTTP 请求头信息呢?
    • 是否可以轻松设置所有的 HTTP 响应头信息呢?
    • 是否可以使用客户化的 HTTP 谓词?
    • 是否能够清晰、简单地在响应中返回正确的状态码,框架会正确使用这些状态码么(如果使用的话)?

Mike Amundsen建议向REST Litmus Test for Web Frameworks列表中再增加一些内容,他认为 URI 的各个组成部分、路径与查询字符串的作用是一样的,都可以将资源彼此区分开来。他援引了Roy T. Fielding on REST-Discuss, 2002

[F] 或是服务端构建的 URI,查询字符串与路径信息之间并没有明确的区分——他们都可以区分资源。

下面列举出一些支持 RESTful 服务的知名 Web 框架:

Java

.net

Ruby

Python

说出你的想法吧,这样我们才能不断更新这个构建 RESTful 服务的框架、平台列表,一定要看看原文了解详细信息。

查看英文原文:How RESTful Are Web Frameworks That Claim REST Support?

JavaSOA.NETRubyREST语言 & 开发架构