【发布时间】:2010-12-08 09:49:44
【问题描述】:
我知道这个问题太宽泛了,无法用简单的“使用这个框架”来回答,但我非常感谢你对这个问题的建议。
我正在寻找一个(相当复杂的)项目,而不是通过 API 运行。我对任何编程语言(主要是 PHP、Python、Java)都持开放态度,并发现许多框架更倾向于制作 RESTful Web 服务器。
我唯一的主要限制是我将拥有一个可重用、简单且与代码无关的包,以便以后轻松改进我的 API,甚至可以毫不费力地切换到其他框架。
对于 Python 和 Java,我考虑过制作一个专用包。每个动作都会调用包中的专用方法,包会返回 object/dict,动作会将其转换为正确的格式。
经过多次研究,我在两个可能对我的工作有益的框架之间犹豫不决,但我需要你的建议,因为我不会在这里犯任何错误。
-
Play! Framework (Java)
-
优点:
- 路由器面向 RESTFul(您定义方法(GET、POST 等)、请求和要使用的 class.method)
- 您不必为每个操作创建一个类
-
缺点:
- 模型已包含在内。如果我以后更改框架,也许我会坚持下去(但显然不是,因为 Play!似乎使用 JPA)
- 也许事实是,如果我想向方法签名中定义的操作发送参数,我必须采用 ClassName.properties 而不是像 {ClassName: {properties: 'value'}} 之类的 json /li>
-
优点:
-
Tornado Web (Python)
-
优点:
- 似乎非常强大:被 FriendFeed 使用(至少)!
- 已通过主要 OpenId、OAuth 和 Facebook 进行身份验证
- 很轻(可能是个问题)
-
缺点:
- 不那么受欢迎:你通过阅读代码比阅读文档更了解工作
- Urls 似乎很基础(据我所知,您必须在一个文件中定义所有 url,包括所有类)
- 每个动作一个类(可能很重)
- 必须制作基本的装饰器(测试用户是否是 auth 等)
-
优点:
为了在生产中使用它们,使用 apache & mod_proxy 或 nginx 很容易。
所以,我的问题很简单:你会选择什么(在这两个或其他之间,我不接受建议)以及为什么?
非常感谢您的建议!
【问题讨论】:
标签: api rest frameworks