2014-12-19 77 views
4

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

的代码是:

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); 
} 

回答

2

好了,在这里描述的是我发现那曾作为当地GAE非默认模块的解决办法是唯一的答案:https://code.google.com/p/google-api-javascript-client/issues/detail?id=147

  1. 打开本地主机:8090/_ah/api/discovery/v1/apis/adminapi/v1/rest
  2. 下载JSON
  3. 更新列表baseUrl和rootUrl包含正确的端口(8090 in我的情况)
  4. 通客户端,而不是API的名称gapi.client.load功能更新JSON

备选: 加入@Api注释的Java类: 根= “http://localhost:8090/_ah/api”, backendRoot =“http://localhost:8090/_ah/spi”,

这两种方法中的唯一一点:我不应该提交这些更改,因为这些URL肯定不是用于生产的。

相关问题