适用于App Engine的Python REST框架?

14 投票
2 回答
6361 浏览
提问于 2025-04-16 22:57

有没有什么建议或者经验可以分享,关于在App Engine上用Python实现REST API的?我打算用webapp来做这个应用。

我目前知道的是:

  • 我可以自己写webapp的处理程序来处理类似REST的URI,但这样在处理大量资源时就显得不太优雅了。比如说,处理temperature/atlanta这样的请求还算简单,但像/users/alice/address/work这样的请求就复杂多了(不过我不是说我已经实现过这个,只是花了一些时间在设计合适的处理程序上,所以我的看法可能不太准确)。

  • 我可以使用一些比较大的Python网页框架提供的REST功能。我对web2py有种说不清的好感,但既然这个项目不打算用它,单为了提供一些REST功能而把它捆绑进应用里,感觉有点多余。

(唉,看来我对这些方法都不太满意。真难。)

所以我想问问:你们有什么建议吗?最好是基于经验的。我的选择有哪些?我的看法对吗?我是不是漏掉了什么?

提前谢谢大家。

2 个回答

6

ProtoRPC 是和 SDK 一起提供的,它功能强大并且在不断更新(不过还在实验阶段)。虽然我觉得它的源代码有点复杂,但它的功能很全面,而且是由有经验的人开发的,专门用来做这种库的。它支持用 JSON、ProtocolBuffer 和 URL 编码的格式进行数据传输。

另外,你可以创建在服务器端客户端都能工作的 API——它定义了一种“消息”协议,并在 Python 和 JavaScript 中都有实现。我用过其他一些“RESTful”的 Python 库,但没有哪个能像这个一样开箱即用就提供这么一致的体验。

这是项目页面,还有这是讨论组

编辑:也许他们的文档缺少一些关键词,但我想明确一点:ProtoRPC 的一个目的就是提供一个坚实的基础来创建 REST 服务。

10

我遇到过类似的问题。我想快速通过REST把我的数据存储暴露给网页应用。

我发现了一个叫做:AppEngine REST Server

到目前为止我只用过它一点点,但看起来只需要少量的工作,它就非常有用。而且它确实像你建议的那样使用了webapp。

撰写回答