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:
- 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 .
$ 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.
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.