javascript - 如何在本地 Google App Engine 的非默认模块上访问 Google Cloud Endpoints?

标签 javascript google-app-engine google-cloud-endpoints

我正在开发一个包含多个模块的 Google App Engine 应用程序。后端 API 使用 Google Cloud Endpoints。当我在本地运行 GAE 服务器时,即使我在加载客户端后从我的管理模块 (localhost:9090) 加载 API,它也会尝试调用默认模块端口 (localhost:8080)。在远程 GAE 实例上,一切正常。这可能是什么原因或解决方法?

代码是:

function init() {
  var loadCallback = function () {
    gapi.client.adminapi.mymethod(12345).then(alert(Woohoo!));
  };

  var apiRoot = '//' + window.location.host + '/_ah/api';
  gapi.client.load('adminapi', 'v1', loadCallback, apiRoot);
}

最佳答案

好的,这里描述了我找到的唯一答案,它可以作为本地 GAE 中非默认模块的解决方法:https://code.google.com/p/google-api-javascript-client/issues/detail?id=147

  1. 打开localhost:8090/_ah/api/discovery/v1/apis/adminapi/v1/rest
  2. 下载 JSON
  3. 更新列表 baseUrl 和 rootUrl 以包含正确的端口(在我的例子中是 8090)
  4. 在客户端的 gapi.client.load 函数中传递更新的 JSON 而不是 API 的名称

备选方案: 添加到 @Api 注解的 Java 类: root = "http://localhost:8090/_ah/api", backendRoot = "http://localhost:8090/_ah/spi",

这两种方法中的唯一时刻:我不应该提交这些更改,因为这些 URL 肯定不适合生产。

关于javascript - 如何在本地 Google App Engine 的非默认模块上访问 Google Cloud Endpoints?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27575538/

相关文章:

javascript - 获取下拉列表中选定的值并将其放入其他下拉列表中?

python - 将代码拆分到不同的文件中 - Python/App Engine

google-app-engine - 针对 GO 错误的 Google Glass 快速入门

java - 如何在localhost上运行ESP(Extensible Service Proxy)在本地模拟认证?

javascript - 三个js如何在一组立方体中的一个立方体的四面映射不同的随机图像

php - 使用 jquery 操作 JSON 数组

google-app-engine - Gorilla session 从 session golang 中提取结构值

java - Google Cloud 端点和身份验证

java - 具有 objectify 功能的安全嵌入式实体

javascript - 如何将 <li> 标签包裹在 <ul> 标签内