typescript - Conectare la Google Cloud Endpoints dintr-o aplicație Angular 2


În prezent refactorizez o aplicație web de la Angular 1 la Angular 2, dar întâmpin dificultăți în a găsi exemple care să se conecteze la Google Cloud Endpoints dintr-o aplicație Angular 2.

Am folosit angular-cli pentru a crea aplicația Angular 2. Vreau să folosesc API-urile de la câteva servicii diferite, așa că ar fi de preferat ca orice răspuns sugerat să țină cont de acest lucru.

În Angular 1 am făcut următoarele

În fișierul meu index.html:

    <script>
        function init() {
            console.log("Initializing Cloud Endpoints..");
            window.init();
        };
    </script>        

    <script src="https://apis.google.com/js/client.js?onload=init"></script>

și în main.js-ul meu:

function Main($scope, $window){
    var vm = this;

    $window.init= function() {
        $scope.$apply(vm.loadApi);
    };

    vm.loadApi = function(){
        gapi.client.load('deviceStockApi', 'v1', function(){

            console.log("Cloud Endpoints are now available");

        }, 'https://name-of-my-endpoints-app.appspot.com/_ah/api');
    }
}   

În Angular 2 am încercat

Edit1: Ar trebui să menționez că încerc doar să fac API-ul să se încarce pentru început. De aceea am pus tot codul în fișierul index.html în exemplul de mai jos. Totuși, în mod optim, aș prefera o soluție cu o practică recomandată pentru inițierea și utilizarea Cloud Endpoints dintr-o aplicație Angular 2.

În fișierul meu index.html:

<script src="https://apis.google.com/js/client.js?onload=init"></script>

<script>
  function init() {
    console.log("Init called");

    gapi.client.load('deviceStockApi', 'v1', function(){
      console.log("Cloud Endpoints are now available");
    }, 'https://name-of-my-endpoints-app.appspot.com/_ah/api');
  }
</script>

Când rulez aplicația web, funcția init nu este apelată (nu apare niciun mesaj în consolă). Totuși, se pare că scriptul este încărcat.

Orice sugestii despre cum să rezolv acest lucru sunt apreciate! De asemenea, dacă cineva a găsit vreo documentație de la Google sau alții care să detalieze acest aspect, vă rog să o împărtășiți!

Răspuns #1

Ai încercat să inversezi ordinea operațiunilor aici? Așa cum ai făcut pentru Angular 1, încearcă să muți importul apis.google.com sub blocul de cod de inițializare.