【问题标题】:How, in general, can web framework support REST style?一般来说,Web 框架如何支持 REST 风格?
【发布时间】:2011-02-21 03:16:10
【问题描述】:

我想知道,一般来说,Web 框架适合设计 RESTful 应用程序的方式有哪些。

例如,一个目标是提供 http 请求路由,因此它们会自动发送到适当的控制器。从架构上看,基于MVC模式的Web框架更适合REST。

Web 框架的哪些其他功能有助于构建满足 REST 约束的应用程序?

您有什么理由认为某些语言(python/java)或网络框架(django/turbogears/jersey/restlets/...)是最适用的?

【问题讨论】:

    标签: language-agnostic architecture rest frameworks


    【解决方案1】:

    我认为 Web 框架支持 RESTful 风格的最佳方式是自动将不同的 HTTP 动词(GETPOSTPUTDELETE 等)映射到其上的相应方法控制器/请求处理程序。大多数现代 Python Web 框架都是开箱即用的,但 Django 除外(除非我错过了一个巨大的变化)。

    【讨论】:

      【解决方案2】:

      a) 您需要非常灵活的路由。
      b) 您需要能够使用模板和参数轻松生成与资源控制器相关的链接。
      c) 服务器应该帮助您解析所有的 http 标头。例如授权标头、接受标头、语言标头、cookies、etags。
      d) 它应该支持序列化和反序列化所有常用的 mime 类型。
      e) 它应该有助于解析来自传入 URL 的参数
      f) 它应该有助于根据请求 url 和任何可用的 BaseURL 解析相对 url。

      【讨论】:

        【解决方案3】:

        Web 框架有几种方式不支持 REST。它基本上是在考虑 HTTP 模型的情况下编写的;所以几乎任何网络框架都可以工作。您提到的自动路由是一种常见的期望,但不是 REST 严格要求的。

        【讨论】:

        • 我会说在例如框架允许使用适当的休息动词及其实现来定义休息资源,例如Ruby on Rails 及其脚手架。
        • 虽然我同意贾斯汀的意思,但我认为他的措辞令人困惑。读起来太容易了,好像他在说 Web 框架不能支持 REST,这是错误的!
        【解决方案4】:

        我会强调直接支持资源定义的能力。在 Ruby on RAils 中,您可以通过脚手架定义资源,并获得一个带有控制器的模型,该模型带有实现了 restful 动词的视图,并支持不同的格式以及易于使用的视图和带有 id 的路由。

        除了可以访问 HTTP 和支持 HTTP 原则之外,您还需要。

        我没有足够的经验来了解框架中的支持,但如果支持缓存和其他请求选项也很好。

        【讨论】:

          【解决方案5】:

          在“特定软件推荐”方面,有人推荐Apache CXF 作为使用Java 构建RESTful 服务的框架。它似乎甚至能够同时支持 SOAP(恰好对于帮助我们的一些客户群采用该软件非常有用)。不过,我仍处于试验阶段,因此您可能会做得更好。

          【讨论】:

            猜你喜欢
            • 2011-02-10
            • 2010-11-07
            • 1970-01-01
            • 2011-01-06
            • 2013-12-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多