在Google App Engine上创建REST API

0 投票
2 回答
911 浏览
提问于 2025-04-17 03:48

我有一个用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特有的。

撰写回答