Dodawanie Node.js do istniejącego serwera proxy interfejsu API

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Wprowadzenie

Z tego artykułu dowiesz się, jak dodać aplikację Node.js do istniejącego serwera proxy w lokalnym systemie plików i jak wdrożyć serwer proxy w Apigee Edge.

Przygotowywanie środowiska programistycznego

W tym artykule zakładamy, że masz już skonfigurowane środowisko programistyczne serwera proxy w systemie lokalnym i chcesz zintegrować z nim aplikację Node.js.

Podstawowa struktura aplikacji serwera proxy, która zawiera aplikację Node.js, jest zgodna ze wzorcem pokazanym na ilustracji poniżej. Zawiera folder główny /apiproxy i podfoldery na zasoby, cele i serwery proxy. W folderze apiproxy/resources/node muszą znajdować się pliki Node.js. Pozostałe foldery zawierają pliki XML, które definiują punkty końcowe serwera proxy i celu, przepływ serwera proxy, przepływy warunkowe itp. Bardziej szczegółowy opis struktury proxy interfejsu API znajdziesz w artykule Informacje o konfiguracji proxy interfejsu API.

Pamiętaj, że cały kod Node.js, który jest częścią serwera proxy, musi znajdować się w folderze /apiproxy/resources/node. To tam Edge oczekuje go znaleźć po wdrożeniu.

Określanie celu Node.js za pomocą ScriptTarget

Kluczem do zintegrowania Node.js z serwerem proxy jest określenie elementu <ScriptTarget> w pliku XML punktu końcowego celu. W strukturze plików serwera proxy ten plik XML znajduje się w apiproxy/targets. Domyślnie nazwa pliku to default.xml.

Dla kontekstu pamiętaj, że punkt końcowy celu zwykle wskazuje usługę backendu. W tym przypadku trafiamy do usługi celu pozornego Apigee. Definicja punktu końcowego celu wygląda tak:

<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>http://mocktarget.apigee.net/</URL>
    </HTTPTargetConnection>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

Element <HTTPTargetConnection> określa adres URL usługi backendu, czyli usługi celu pozornego Apigee.

W przypadku Node.js celem jest jednak sama aplikacja Node.js . Określasz to za pomocą elementu <ScriptTarget> w pliku apiproxy/targets/default.xml.

Zamiast używać elementu <HTTPTargetConnection> do określania adresu URL usługi backendu, cel odwołuje się bezpośrednio do aplikacji Node.js za pomocą elementu <ScriptTarget> w ten sposób:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

Parametr <ResourceURL> musi zawsze zaczynać się od node://, a po nim musi następować nazwa głównego skryptu Node.js. Jak wspomnieliśmy wcześniej, zasoby Node.js muszą znajdować się w /apiproxy/resources/node w zakresie proxy interfejsu API.

W ScriptTarget możesz ustawić dodatkowe parametry. Więcej informacji znajdziesz w artykule Konfiguracja zaawansowana ScriptTarget.

Na potrzeby tego przykładu podajemy kod źródłowy głównego pliku Node.js o nazwie server.js. Jest to podstawowy serwer HTTP , który po otrzymaniu żądania zwraca „Hello World!”:

var http = require('http');
console.log('node.js application starting...');
var svr = http.createServer(function(req, resp) {
    resp.end('Hello, Node!');
});

svr.listen(process.env.PORT || 9000, function() {
    console.log('Node HTTP server is listening');
});

Podsumowując, zakładając, że główna aplikacja Node.js jest zaimplementowana w pliku o nazwie server.js, a konfiguracje punktów końcowych mają nazwę default.xml, serwer proxy API zawierający skrypt Node.js ma taką strukturę:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

Przygotowanie do wdrożenia aplikacji

Większość aplikacji Node.js ma pliki zależności i zawiera plik package.json w katalogu głównym. W takim przypadku zalecamy uruchomienie narzędzia npm, aby upewnić się, że katalog node_modules najwyższego poziomu jest wypełniony zależnościami przed wdrożeniem. Jeśli istnieją zależności zdalne, które nie są uwzględnione w node_modules, aplikacja Node.js nie będzie działać w Edge.

Za pomocą narzędzia npm możesz łatwo pobrać wszystkie zależności do systemu plików:

  1. W katalogu głównym aplikacji Node.js uruchom:
$ npm install 

lub

$ npm update

Gdy zależności zostaną zainstalowane, możesz wdrożyć serwer proxy w Edge.

Wdrażanie aplikacji Node.js w Apigee Edge

Zanim wdrożysz aplikację, musisz znać nazwę organizacji, nazwę użytkownika i hasło do swojego konta Apigee Edge. Te informacje są potrzebne do prawidłowego utworzenia polecenia narzędzia do wdrażania.

Oto polecenie. Zakłada ono (z flagą -d), że znajdujesz się w katalogu głównym serwera proxy. Jeśli serwer proxy ma nazwę foo, wpisz to polecenie w katalogu foo:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Aby dowiedzieć się, co oznaczają poszczególne flagi polecenia, wykonaj te czynności:

$ apigeetool deployproxy -h

Krótkie podsumowanie:

  • -n Ta flaga umożliwia określenie nazwy serwera proxy, który zostanie utworzony po wdrożeniu aplikacji. Ta nazwa będzie widoczna w interfejsie zarządzania.
  • -d Określa katalog główny proxy interfejsu API.
  • -o, -e, -u i -p określają nazwę organizacji, środowisko wdrożenia, nazwę użytkownika i hasło.
To wszystko. Twoja aplikacja Node.js jest opakowana w proxy interfejsu API, wdrożona w Edge i uruchomiona. Czeka na żądania i jest gotowa do testowania.

Testowanie nowego serwera proxy interfejsu API

Właśnie dodaliśmy aplikację Node.js do istniejącego proxy interfejsu API i wdrożyliśmy proxy w Apigee Edge. Aby go przetestować, uruchom to polecenie cURL. Zakładamy, że używana jest domyślna ścieżka podstawowa (/), która jest określona w pliku konfiguracji punktu końcowego serwera proxy (ścieżka podstawowa jest określona w pliku konfiguracji punktu końcowego serwera proxy). Pamiętaj, aby zastąpić org_name nazwą organizacji. Jeśli nie masz zainstalowanego cURL, możesz wpisać adres URL w przeglądarce.

$ curl http://org_name-test.apigee.net/
Hello, Node!

Wyświetlanie nowego serwera proxy w interfejsie zarządzania

Zaloguj się na konto Apigee Edge i otwórz stronę Serwery proxy API. Zobaczysz tam serwer proxy o nazwie „hellonode”.

Kliknij „hellonode”, aby wyświetlić szczegóły serwera proxy. W widoku Develop (Programowanie) możesz zobaczyć przesłany kod źródłowy, dodać zasady, edytować przepływy itp.

Dalsze kroki

Informacje o debugowaniu aplikacji Node.js działających w Apigee Edge znajdziesz w artykule Debugowanie serwerów proxy Node.js i rozwiązywanie problemów z nimi.