ProtoRPC API是ajax内置的GAE吗?

时间:2012-06-06 14:23:16

标签: ajax json google-app-engine knockout.js protorpc

下一步:gae / py app的ajax前端。

我的应用只有与数据存储区交互的基本html版本,并且每次都会更新页面。没关系,但现在需要ajax。 我尝试了一些解决方案:基本的javascript,jquery的ajax API和一些框架。

我认为我在knockoutjs中找到了我想要的所有内容,但是这个框架通过json格式与服务器进行交互。这意味着我需要学习json库并重写所有处理程序,以便在json中获取和发布。我可以开始这个任务,但在我想要了解更多关于ProtoRPC API之前。

文档说这个API对于“创建结构化Ajax后端”也很有用,如果我理解的话,响应中的消息是json格式的。我的问题是:

ProtoRPC API消息确实使用json?

所有请求/响应都通过ProtoRPC会出现问题吗?

实现服务器端固态ProtoRPC服务并使用框架进行客户端是一个很好的策略?

2 个答案:

答案 0 :(得分:5)

ProtoRPC附带了传输协议的JSON实现。

您应该能够使用ProtoRPC构建服务器端逻辑,并使用JSON编码的消息向您的API端点发出HTTP请求,如官方文档中的ProtoRPC overview所述。

Knockoutjs不应该妨碍,因为documentation表示它不会强迫您使用任何特定技术来加载或保存数据

答案 1 :(得分:2)

我只想提一下从客户端使用ProtoRPC的一个小问题,因为那里还没有完全开发的客户端。让ProtoRPC使用Json的主要方法是确保您的请求内容类型是'application / json'。否则,ProtoRPC可能会尝试使用二进制protobuf格式。

此外,ProtoRPC的文档已经过时了。这些示例显示了使用ProtoRPC和基于webapp的请求处理程序。相反,你应该使用更新的基于wsgi的处理程序,特别是如果你正在使用Python 2.7。

WSGI处理程序内置于ProtoRPC中,源代码位于:

http://code.google.com/p/google-protorpc/source/browse/python/protorpc/wsgi/service.py#211

它与webapp处理程序的工作方式非常相似,只不过它可以在现有的基于webapp的应用程序中使用它。