聚合物& google cloud endpoints转到后端

时间:2015-06-08 20:22:36

标签: google-app-engine polymer google-cloud-endpoints

我正在尝试从聚合物1.0获取我的google cloud端点,所有设置和工作(后端和调度器在appengine上),但google-api-loader / google-client-loader(尝试两者)拒绝承认我端点,使用google-api-loader没有任何事情发生就绪事件永远不会触发,使用谷歌客户端加载器但它会尝试获取此网址:

https://content.googleapis.com/discovery/v1/apis/jobs/v1/rest?fields=rootUrl%2CservicePath%2Cresources%2Cparameters%2Cmethods&pp=0

其中包含所有google global apis,而不是我的端点。

代码:

<polymer-element name="job-service" attributes="jobs">                                                                                                                                                             
    <template>                                                                                                                                                                                                     
        <google-api-loader id="api" name="jobs" version="v1" appId="MyAppID" apiRoot="http://localhost:8082/_ah/api" root="http://localhost:8082/_ah/api">                                                                                                                                                               
        </google-api-loader>                                                                                                                                                                                    
    </template>                                                                                                                                                                                                    
    <script>                                                                                                                                                                                                                                                                                                                                                                                         
    Polymer({                                                                                                                                                                                         
        is: 'job-service',                                                                                                                                                                                         
        ready: function() {                                                                                                                                                                                        
            var setJobs = (function(data) {                                                                                                                                                                        
                this.jobs = data.result.jobs;                                                                                                                                                                      
            }).bind(this);                                                                                                                                                                                         

            this.$.api.addEventListener('google-api-load', (function() {                                                                                                                                           
                this.api = this.$.api.api;                                                                                                                                                                         
                this.api.getJobs().then(setJobs);                                                                                                                                                                  
            }).bind(this));                                                                                                                                                                                        
        },                                                                                                                                                                                                         
    });                                                                                                                                                                                                            
    </script>                                                                                                                                                                                                      
</polymer-element>             

尝试更新google-apis以掌握没有任何变化。

这是我的bower.json:

{
  "name": "polymer-project",
  "dependencies": {
    "paper-header-panel": "PolymerElements/paper-header-panel#^1.0.0",
    "paper-item": "PolymerElements/paper-item#^1.0.0",
    "google-apis": "GoogleWebComponents/google-apis#master",
    "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0"
  }
}

由于

1 个答案:

答案 0 :(得分:6)

一些注意事项:

google-client-loader是你想要的那个

在新版本发布之前,您必须依赖#master(因为您已经在做),因为root / apiRoot修复程序尚未发布。

使用Polymer 1.0,camel-cased属性变为小写,因此传递apiRoot实际上是apiroot属性。您想要的是设置api-root和/或app-id(是的,我知道这部分令人困惑......,请参阅Migration Guide

<google-client-loader
   id="api" name="jobs" version="v1"
   app-id="MyAppID" api-root="http://localhost:8082/_ah/api">
只要设置app-id

api-root就不会被使用。将此部署到服务器后,您必须删除api-root

您的代码仍然是Polymer&lt; 0.6而不是Polymer 1.0(除非您复制了一些旧代码)。 它看起来应该是这样的(见Migration Guide):

<dom-module id="job-service">
  <template>
    ...
  </template>
</dom-module>

<script>
  Polymer({
    is: 'job-service',
    ...
  )}
</script>