在Google App Engine上创建REST API
我有一个用PHP写的网页应用程序,想要在里面加一个评论区。于是我决定这样做:
我会做一个Python的网页应用来存储评论,并从BigTable中获取评论。我会发送一个AJAX请求来存储评论(包括评论内容和其他参数),然后再发送一个AJAX请求从BigTable获取所有评论,以JSON格式返回(我能否直接返回格式化的HTML,这样我就可以直接替换请求父页面中的一个div)。
现在的问题是,PHP网页应用运行在不同的域名下,我不确定能否进行AJAX调用——这样做会不会违反跨域安全政策。如果会,那REST API是怎么工作的呢?我可以发送AJAX请求并得到JSON响应。
理想情况下,我希望能直接从GAE返回格式化的HTML。但如果不行,我也可以接受返回JSON。
这样做可以吗?如果可以的话,任何关于如何制作这样的API的建议都很有用。如果不行,有什么替代方案吗?
2 个回答
0
看看这个 RockWall 的REST API引擎。
这里有一些基本的实用功能:
- 可以通过一个HTTP请求发送多个请求(REST API)。
- 所有请求都有统一且稳定的响应格式。
- 根据类型检测(静态或非静态)来执行端点方法。
- 请求修改器功能。
- 可以声明每个请求应该使用哪种类型的类实例(新实例、单例或单例的新实例)。
- 支持跨域的AJAX请求。
- ...还有更多功能...
2
大多数浏览器不允许跨域的XHR请求。解决这个问题的常用方法是JSONP,简单来说,就是通过一个脚本标签来调用远程的JavaScript,然后把返回的数据传递给本地的一个回调函数。
这个问题和解决方法并不是App Engine特有的。