Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
Wprowadzenie
Z tego tematu dowiesz się, jak dodać aplikację Node.js do istniejącego serwera proxy w lokalnym systemie plików i jak wdrożyć serwer proxy do Apigee Edge.
Przygotowywanie środowiska programistycznego
W tym temacie zakładamy, że masz już skonfigurowane w systemie lokalnym środowisko programistyczne serwera proxy i chcesz zintegrować z nim aplikację Node.js.
Podstawowa struktura aplikacji proxy zawierającej aplikację Node.js jest zgodna ze wzorcem pokazanym na rysunku poniżej. Zawiera folder podstawowy /apiproxy oraz foldery podrzędne resources, targets i proxies. Folder apiproxy/resources/node to miejsce, w którym muszą być umieszczone pliki Node.js. Pozostałe foldery zawierają pliki XML, które definiują serwer proxy i końcowe punkty dostępu, przepływ danych przez serwer proxy, przepływy warunkowe itp. Pełniejszy opis struktury interfejsu API proxy znajdziesz w artykule Przewodnik po konfiguracji interfejsu API proxy.
Pamiętaj, że każdy kod Node.js, który jest częścią serwera proxy, musi znajdować się w folderze /apiproxy/resources/node. W tym miejscu Edge spodziewa się go znaleźć po wdrożeniu.
Określ docel Node.js za pomocą parametru ScriptTarget
Kluczem do zintegrowania Node.js z serwerem proxy jest określenie elementu <ScriptTarget> w pliku XML docelowego punktu końcowego. W strukturze plików serwera proxy plik XML znajduje się w apiproxy/targets. Domyślna nazwa pliku to default.xml.
Dla kontekstu weź pod uwagę, że docelowy punkt końcowy zwykle wskazuje jakąś usługę backendu. W tym przypadku wywołujemy mockową 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, czyli usługi docelowej mockowanej przez Apigee.
W przypadku Node.js aplikacja Node.js sama jest docelowym elementem. Możesz to określić za pomocą tagu <ScriptTarget> w pliku apiproxy/targets/default.xml.
Zamiast elementu <HTTPTargetConnection> do określania adresu URL usługi backendowej, odwołanie do aplikacji Node.js jest umieszczane bezpośrednio w elemencie <ScriptTarget>, np. 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 następnie musi być poprzedzony nazwą głównego skryptu Node.js. Jak już wspomnieliśmy, zasoby Node.js muszą znajdować się w /apiproxy/resources/node
w zakresie serwera proxy interfejsu API.
Dodatkowe parametry możesz ustawić w polu „ScriptTarget”. Szczegółowe informacje znajdziesz w artykule Konfiguracja zaawansowanego typu docelowego skryptu.
W tym przykładzie przedstawiamy kod źródłowy głównego pliku Node.js o nazwie server.js. Jest to podstawowy serwer HTTP, który zwraca „Hello World!”, gdy otrzyma żądanie:
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, przy założeniu, że główna aplikacja Node.js jest zaimplementowana w pliku o nazwie server.js
, a konfiguracje punktów końcowych noszą 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 w katalogu głównym plik package.json. W takim przypadku sprawdzoną metodą jest uruchomienie narzędzia npm, aby mieć pewność, że katalog najwyższego poziomu node_modules 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.
Wszystkie zależności w systemie plików możesz łatwo pobrać za pomocą narzędzia npm:
- W katalogu głównym aplikacji Node.js uruchom:
$ npm install
lub
$ npm update
Po zainstalowaniu zależności możesz wdrożyć serwer proxy w Edge.
Wdróż aplikację 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 prawidłowego sformułowania polecenia narzędzia do wdrażania.
Oto polecenie. Zakłada (flaga -d), że znajdujesz się w katalogu głównym serwera proxy. Jeśli serwer proxy nazywa się 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. Będzie ona widoczna w interfejsie zarządzania.
- -d Określa katalog główny proxy interfejsu API.
- Parametry -o, -e, -u i -p określają nazwę organizacji, środowisko wdrożenia, nazwę użytkownika i hasło.
Testowanie nowego proxy interfejsu API
Właśnie dodałeś aplikację Node.js do istniejącego serwera proxy interfejsu API i wdrożyłeś go w Apigee Edge. Aby to przetestować, uruchom to polecenie cURL. Zakładamy, że używana jest domyślna ścieżka podstawowa (/). Ścieżka podstawowa jest określona w pliku konfiguracji punktu końcowego proxy. Zastąp ciąg 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ę Proxy interfejsu API. Zobaczysz tam serwer proxy o nazwie „hellonode”.
Kliknij „hellonode”, aby wyświetlić szczegóły serwera proxy. W widoku rozwijania możesz wyświetlić 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 i rozwiązywanie problemów z serwerami pośredniczącymi Node.js.