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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wstęp

W tym temacie wyjaśniamy, 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

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

Podstawowa struktura aplikacji proxy, która zawiera aplikację Node.js, jest zgodna ze wzorcem pokazanym na ilustracji poniżej, z podstawowym folderem /apiproxy i podfolderami dla zasobów, miejsc docelowych i serwerów proxy. Folder apiproxy/resources/node to miejsce, w którym należy umieścić pliki Node.js. Inne foldery zawierają pliki XML definiujące punkty końcowe i punkty końcowe serwera proxy, przepływ serwera proxy, przepływy warunkowe itd. Pełny opis struktury serwera proxy interfejsu API znajdziesz w dokumentacji konfiguracji serwera proxy interfejsu API.

Pamiętaj, że każdy kod Node.js, który jest częścią serwera proxy, musi być umieszczony w katalogu /apiproxy/resources/node. Edge oczekuje, że będzie go znaleźć po wdrożeniu.

Określanie środowiska docelowego Node.js za pomocą wartości ScriptTarget

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

Weź pod uwagę, że docelowy punkt końcowy zwykle wskazuje jakąś usługę backendu. W tym przypadku trafiliśmy na pozorną usługę docelową Apigee. Definicja docelowego punktu końcowego 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, usługi pozorowanej usługi docelowej Apigee.

Jednak w przypadku Node.js jej celem jest aplikacja Node.js . Podaj go w elemencie <ScriptTarget> w pliku apiproxy/targets/default.xml.

Zamiast do miejsca docelowego używającego elementu <HTTPTargetConnection> do określania adresu URL usługi backendu, do aplikacji Node.js odwołuje się bezpośrednio element <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 być poprzedzony ciągiem node://, po którym następuje nazwa głównego skryptu Node.js. Jak już wspomnieliśmy, zasoby Node.js muszą znajdować się w regionie /apiproxy/resources/node w zakresie serwera proxy interfejsu API.

Dodatkowe parametry możesz ustawić w sekcji ScriptTarget. Szczegółowe informacje znajdziesz w artykule Zaawansowana konfiguracja ScriptTarget.

Na potrzeby tego przykładu oto kod źródłowy głównego pliku Node.js o nazwie server.js. 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 interfejsu 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 podstawowym. W takim przypadku sprawdzoną metodą jest uruchomienie narzędzia npm, aby przed wdrożeniem upewnić się, że katalog node_modules najwyższego poziomu jest wypełniony zależnościami. Jeśli występują jakiekolwiek zależności zdalne, których nie ma w elemencie node_modules, aplikacja Node.js nie będzie działać w Edge.

Możesz łatwo pobrać wszystkie zależności od systemu plików przy użyciu narzędzia npm:

  1. Uruchom polecenie z katalogu podstawowego aplikacji Node.js:
$ npm install 

lub

$ npm update

Po zainstalowaniu zależności możesz wdrożyć serwer proxy na serwerach brzegowych.

Wdrażanie aplikacji Node.js w Apigee Edge

Przed wdrożeniem musisz znać nazwę organizacji, nazwę użytkownika i hasło do konta Apigee Edge. Te informacje są potrzebne do poprawnego utworzenia polecenia narzędzia do wdrażania.

Oto polecenie. Zakładamy tutaj (z flagą -d), że jesteś w katalogu głównym serwera proxy. Jeśli serwer proxy nazywa się foo, wpisz to polecenie z katalogu foo:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Aby dowiedzieć się, co oznaczają poszczególne flagi polecenia, przeczytaj ten artykuł:

$ apigeetool deployproxy -h

Krótkie podsumowanie:

  • -n Ta flaga pozwala określić nazwę serwera proxy, który zostanie utworzony po wdrożeniu aplikacji. Nazwa będzie widoczna w interfejsie zarządzania.
  • -d Określa katalog główny serwera 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 serwerze proxy interfejsu API, wdrożona w Edge i wykonywana. Czeka na żądania i jest gotowy do przetestowania.

Przetestuj nowy serwer proxy interfejsu API

Właśnie została dodana aplikacja Node.js do istniejącego serwera proxy interfejsu API i wdrożono serwer proxy w Apigee Edge. Aby go przetestować, uruchom to polecenie cURL. Zakładamy, że używana jest domyślna ścieżka bazowa (/) (ścieżka podstawowa jest określona w pliku konfiguracji punktu końcowego serwera proxy). Zastąp nazwę swojej organizacji nazwą org_name. Jeśli nie masz zainstalowanego narzędzia cURL, możesz wpisać URL w przeglądarce.

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

Wyświetl nowy serwer proxy w interfejsie zarządzania

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

Kliknij „hellonode”, aby wyświetlić szczegóły serwera proxy. W widoku Programowanie możesz przeglądać przesłany kod źródłowy, dodawać zasady, edytować przepływy itd.

Dalsze kroki

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