2010-05-18 29 views
4

我想知道,一般来说,Web框架可能适用于设计RESTful应用程序的方式。一般来说,Web框架如何支持REST风格?

一个目标是例如提供http请求路由,以便它们自动发送到适当的控制器。从架构的角度来看,基于MVC模式的web框架更适合于REST。

通过构建满足REST约束的应用程序,Web框架的其他功能是否有帮助?

是否有任何理由认为某些语言(python/java)或web框架(django/turbogears/jersey/restlets/...)是最适用的语言?

回答

0

Web框架无法支持REST的方法很少。它基本上是用HTTP模型编写的;所以几乎任何Web框架的作品。您提到的自动路由是一种常见的期望,但对REST并不严格要求。

+0

我会说有一个显着的差异,例如,该框架允许用适当的其他动词及其实现来定义平静的资源,例如, Ruby on Rails及其脚手架。 – 2010-05-18 22:31:25

+0

虽然我同意贾斯汀的意思,但我认为他的描述令人困惑。这很容易阅读,就好像他在说web框架*不能*支持REST,这是错误的! – 2010-05-19 00:15:25

1

我想了web框架以支持一个RESTful样式的最佳方法是自动的不同HTTP谓词(GETPOSTPUTDELETE等)映射到对应于它的控制器/请求处理程序方法。大多数现代Python Web框架都是这样开箱的,除了Django之外(除非我错过了一个巨大的变化)。

0

我会强调直接支持资源定义的能力。在Ruby on Rails中,您可以通过脚手架定义资源,并且您可以获得带有宁静动词控制器的模型,还可以实现视图和对不同格式的支持,以及易于使用的视图和使用ID进行路由。

除了可以访问HTTP和HTTP的支持原则是你所需要的。

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

0

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

1

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