适用于App Engine的Python REST框架?
有没有什么建议或者经验可以分享,关于在App Engine上用Python实现REST API的?我打算用webapp
来做这个应用。
我目前知道的是:
我可以自己写
webapp
的处理程序来处理类似REST的URI,但这样在处理大量资源时就显得不太优雅了。比如说,处理temperature/atlanta
这样的请求还算简单,但像/users/alice/address/work
这样的请求就复杂多了(不过我不是说我已经实现过这个,只是花了一些时间在设计合适的处理程序上,所以我的看法可能不太准确)。我可以使用一些比较大的Python网页框架提供的REST功能。我对
web2py
有种说不清的好感,但既然这个项目不打算用它,单为了提供一些REST功能而把它捆绑进应用里,感觉有点多余。
(唉,看来我对这些方法都不太满意。真难。)
所以我想问问:你们有什么建议吗?最好是基于经验的。我的选择有哪些?我的看法对吗?我是不是漏掉了什么?
提前谢谢大家。
2 个回答
ProtoRPC 是和 SDK 一起提供的,它功能强大并且在不断更新(不过还在实验阶段)。虽然我觉得它的源代码有点复杂,但它的功能很全面,而且是由有经验的人开发的,专门用来做这种库的。它支持用 JSON、ProtocolBuffer 和 URL 编码的格式进行数据传输。
另外,你可以创建在服务器端和客户端都能工作的 API——它定义了一种“消息”协议,并在 Python 和 JavaScript 中都有实现。我用过其他一些“RESTful”的 Python 库,但没有哪个能像这个一样开箱即用就提供这么一致的体验。
编辑:也许他们的文档缺少一些关键词,但我想明确一点:ProtoRPC 的一个目的就是提供一个坚实的基础来创建 REST 服务。
我遇到过类似的问题。我想快速通过REST把我的数据存储暴露给网页应用。
我发现了一个叫做:AppEngine REST Server。
到目前为止我只用过它一点点,但看起来只需要少量的工作,它就非常有用。而且它确实像你建议的那样使用了webapp。