2014-12-19 110 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肯定不是用於生產的。

相關問題