谷歌云端点文档之间的差异,以及在我的应用程序中的作用

时间:2013-05-22 07:55:38

标签: javascript python api google-cloud-endpoints

documentation表示你应该从这样的javascript加载api:

var ROOT = 'https://your_app_id.appspot.com/_ah/api';
gapi.client.load('your_app_id', 'v1', function() {
    doSomethingAfterLoading();
}, ROOT);

但是,它实际上似乎是

var ROOT = 'https://your_app_id.appspot.com/_ah/api';
gapi.client.load('your_api_name', 'v1', function() {
    doSomethingAfterLoading();
}, ROOT);

例如,我可以将“users”作为api名称传递,现在users对象被定义为gapi.client的属性。

为了清楚起见,我的api定义如下:

@endpoints.api(name='users',version='v1',
               description='The user service.')
class UserService(remote.Service):
    ...

所以,现在,我想知道,我是否以无意的方式做某事?而且,由于/_ah/api/explorer可以找到所有定义的API,有没有办法让这个函数添加我定义的所有api,而不必在单独的gapi.client.load调用中指定所有的名称?

1 个答案:

答案 0 :(得分:1)

感谢您指出,这是文档中的错误!如果尽快修复,我们会尝试获得。

您应该查看完全出炉的Tic Tac Toe sample application

在其中,我们将展示如何load multiple APIs(以及其他内容)。

google.devrel.samples.ttt.init = function(apiRoot) {
  // Loads the OAuth and Tic Tac Toe APIs asynchronously, and triggers login
  // when they have completed.
  var apisToLoad;
  var callback = function() {
    if (--apisToLoad == 0) {
      google.devrel.samples.ttt.signin(true,
          google.devrel.samples.ttt.userAuthed);
    }
  }

  apisToLoad = 2; // must match number of calls to gapi.client.load()
  gapi.client.load('tictactoe', 'v1', callback, apiRoot);
  gapi.client.load('oauth2', 'v2', callback);

  var buttons = document.querySelectorAll('td');
  for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    button.addEventListener('click', google.devrel.samples.ttt.clickSquare);
  }

  var reset = document.querySelector('#restartButton');
  reset.addEventListener('click', google.devrel.samples.ttt.resetGame);
};