我有一个Cloud Endpoints
看起来像这样的方法:
//HTTP POST
@ApiMethod(name = "hylyts.insert")
public Hylyt insertHylyt(@Named("url") String url, Hylyt hylyt, User user)
throws OAuthRequestException{
log.info("Trying to save hylyt '"+hylyt+"' with id '"+hylyt.getId());
if (user== null) throw new OAuthRequestException("Your token is no good here.");
hylyt.setArticle(getArticleKey(url, user));
ofy().save().entity(hylyt);
return hylyt;
}
我Javascript Client Library
使用这个来调用它:
gapi.client.hylytit.hylyts.insert({PARAMS}).execute(callback);
现在,如果我按照文档{PARAMS}
中的建议进行构建(第二个示例),
{
'url': url,
'resource': {
'hylyt': {
'contentType': 'application/json',
'data': hylyt
}
}
}
我在端点中得到一个空对象(更不用说这个库的全部意义在于使这些调用变得简单,这个结构显然违反了这一点)。
{
'url': url,
'resource': hylyt
}
我再次在端点中得到一个空对象。正确的语法是这样的:
{
'url': url,
'id': hylyt.id
'text': hylyt.text
}
这让我大吃一惊。我做这一切都错了吗?这是一个错误吗?它只是因为也在后台gapi
传递而发生吗?auth token
是的,我可以改用该语法,但是,如果它与在纯 javascript 中创建 srequest
一样复杂,为什么还要使用该库呢?如果谷歌在文档中解释了事情发生的原因XHR
,我不会介意复杂性。但是,解释一下,文档只是说使用这些方法,auth、CORS 和 XHR 的魔法将在闭门造车中发生。