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
调用中指定所有的名称?
答案 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);
};