2

Ich benutze App-Engine im Backend, mit Google Cloud Endpoints, um APIs für das Front-End verfügbar zu machen. Das Frontend verwendet Angular2.Google Cloud Endpoint mit Angular2

ich die Strategie here für Javascript beschrieben befolgt haben (oder here für Angular1), und dies ziemlich funktioniert, aber fügt sich nicht gut mit Angular2 zur Zeit, da es nicht beobachtbare basiert, nicht in einem Dienst eingewickelt usw.

Auf DefinitelyTyped fand ich these Typdefinitionen für Google Sign-In API, ist aber nur für die Authentifizierung.

Wenn keine bessere Strategie identifiziert wird, werde ich am Ende einen Wrapper-Service für Gapi schreiben, aber vielleicht hat jemand einen besseren Ansatz?

+0

Possible Duplikat [Verwendung http apis mit eckigem 2 rest] (http://stackoverflow.com/questions/ 34755350/using-http-Ruhe-apis-mit-eckigen-2) –

+0

Brent, die Frage, die Sie verlinkt ist über Http. Meine Frage bezieht sich speziell auf Google Cloud Endpoint. – Julien

+0

Mein Fehler, ich dachte, es ging um Angular2. Ich habe die enge Abstimmung zurückgezogen. Ich würde empfehlen, dass Sie etwas mehr Details zu einer bestimmten Frage hinzufügen, anstatt die allgemeine Frage nach einem besseren Ansatz. –

Antwort

0

Wie wäre es, wenn Sie Promise verwenden?

maybe.service.ts

function getPerson: Promise<FooBarResponse>(){ 
    var arg:ArgFooBarPeople = new ArgFooBarPeople(); 
    return new Promise<FooBarResponse>(
      (resolve,reject) => 
      { gapi.client["foobarapi"]["person"].all(arg).execute(
        (response:any)=>{ 
         resolve(response); 
        }); 
      } 
     ); 
} 

maybe.component.ts

function load(){ 
    this._foobarService.getPerson()then(
      (response:FooBarResponse):void =>{ 
        console.log(response); 
        this.fooBarResponse = response; 
     }).catch((error)=>{this.error="error !!"}); 
}