我知道这个问题太广泛了,不能用简单的“使用这个框架”来回答,但我真的很感激你对此的建议。如何选择完美的RESTful框架?
我正在寻找一个(相当复杂)的项目,而不是通过API运行。我对任何编程语言(主要是PHP,Python,Java)都是开放的,并且发现了更多面向构建RESTful Web服务器的框架。
我唯一的主要限制是我会有一个可重复使用的,简单的和非代码意大利面独立的软件包,以便稍后改进我的API,甚至可以毫不费力地切换到其他框架。
对于Python & Java,我想过制作一个专用包。每个动作都会调用包中的专用方法,包会返回object/dict,动作会将其转换为适当的格式。
经过多方考证,我用两个框架,可能是对我的工作,但之间犹豫,我需要你的意见,因为我不会犯任何错误在这里。
- Play! Framework(JAVA)
- 优点:
- 路由器是基于REST的面向(您定义的方法(GET,POST等),请求和class.method使用)
- 您不必每行动一个类
- 缺点:
- 模型已包含在内。如果我后来改变框架,也许我会坚持下去(但显然不是因为Play!似乎使用JPA)
- 也许事实是,如果我想将参数发送到将在方法签名中定义的动作,我必须采用ClassName.properties而不是像JSON {产品类别:{属性: '值'}}
- 优点:
- Tornado Web(Python)的
- 优点:
- 似乎很强大:由FriendFeed使用(至少)!
- 验证通过主要的OpenID,OAuth的和Facebook已经实施
- 很轻(可能是一个问题)
- 缺点:
- 不那么受欢迎:你更好地了解由去工作到代码比文档
- 网址似乎是非常基础(据我所知,你必须在一个文件中定义所有的网址,包括所有类) 每个动作
- 一类(也可能是重度)
- 装饰的基本(测试如果用户身份验证等)必须进行
- 优点:
对于在生产中使用它们,它会很容易与Apache & mod_proxy或nginx。
所以,我的问题很简单:你会选择什么(在这两个或其他人之间,我不接受建议),为什么?
非常感谢您的建议!
哇!这是一个非常完整的答案!我非常感谢您花时间回答我的问题!我会看看Restlet :)非常感谢你! – 2010-12-08 20:34:08