首页 文章

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

提问于
浏览
4

我正在开发一个包含多个模块的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);
}

1 回答

  • 2

    好的,我发现的唯一答案是本地GAE中非默认模块的解决方法:https://code.google.com/p/google-api-javascript-client/issues/detail?id=147

    • 打开localhost:8090 / _ah / api / discovery / v1 / apis / adminapi / v1 / rest

    • 下载JSON

    • 更新列出baseUrl和rootUrl以包含正确的端口(在我的情况下为8090)

    • 在客户端上的gapi.client.load函数中传递更新的JSON而不是API的名称

    替代方案:添加到@Api带注释的Java类:root =“ http://localhost:8090/_ah/api ", backendRoot = " http://localhost:8090/_ah/spi ”,

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

相关问题