Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Jeśli eksperymentujesz po raz pierwszy z objaśnieniami w Javie, najlepiej zacznij od przeczytania artykułu o tworzeniu .
Z tej przykładowej książki kucharskiej dowiesz się, jak utworzyć proste zasady JavaCallout, które wykonują niestandardowy kod w Javie w kontekście przepływu serwera proxy.
Do czego służy przykładowy kod?
Serwer proxy interfejsu API w tym przykładzie wywołuje usługę docelową, która zwraca prostą odpowiedź JSON. W docelowym przepływie odpowiedzi jest umieszczona zasada dotycząca objaśnień w języku Java. Kod w Javie konwertuje nagłówki i treść odpowiedzi na wielkie litery. To prosty przykład: ale pokazuje, jak aby pobrać niestandardowy kod w Javie w kontekście serwera proxy API w Edge.
Zobacz fragment
Pobierz projekt
Dla ułatwienia możesz pobrać ten projekt z repozytorium Apigee api-platform-samples w witrynie GitHub.
- Pobierz lub skopiuj do systemu plik api-platform-samples.
- W wybranym terminalu lub edytorze kodu otwórz
api-platform-samples/doc-samples/java-cookbook
projekt.
Kompilowanie kodu w narzędziu Maven
Projekt jest skonfigurowany tak, że możesz kompilować je w narzędziu Maven. Jeśli chcesz użyć funkcji
javac
, podamy również przykład Maven.
- Sprawdź, czy masz zainstalowaną aplikację Maven:
mvn -version
- Uruchom skrypt
java-cookbook/buildsetup.sh
. Skrypt ten instaluje wymagane zależności JAR w lokalnym repozytorium Maven. - cd do katalogu
java-cookbool/callout
. - Uruchom narzędzie Maven:
mvn clean package
- Jeśli chcesz, sprawdź, czy plik JAR
edge-custom-policy-java-cookbook.jar
został skopiowano do folderujava-cookbook/apiproxy/resources/java
. Ta lokalizacja jest wymagana dla: Pliki JAR, które chcesz wdrożyć za pomocą serwera proxy.
Kompilowanie za pomocą biblioteki javac
Jeśli do skompilowania kodu chcesz użyć narzędzia javac
, możesz zrobić coś podobnego
(z katalogu java-cookbook
). Wymagane pliki JAR są udostępnione
znajdziesz w katalogu java-cookbook/lib
.
- CD do
api-platform-samples/doc-samples/java-cookbook
. - Upewnij się, że ścieżka zawiera bibliotekę javac.
javac -version
- Uruchom to polecenie javac:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- Skopiuj plik JAR do katalogu apiproxy/resources/java. To jest wymagana lokalizacja
w przypadku plików JAR, które chcesz wdrożyć za pomocą serwera proxy.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
Wdróż i wywołaj serwer proxy
Skrypt wdrażania jest dostępny w katalogu ./java-cookbook
. Ale zanim zaczniesz
musisz przeprowadzić szybką konfigurację.
- CD:
api-platform-samples/doc-samples/java-cookbook
- Otwórz plik
../../setup/setenv.sh
i zmodyfikuj go (jeśli jeszcze nie jest otwarty). – zgodnie z informacjami o koncie Apigee: Twoja nazwa użytkownika (adres e-mail) powiązane z Twoim kontem), nazwę organizacji oraz domenę, której używasz do tworzenia interfejsu API rozmów z menedżerem. Na przykład w przypadku Edge Cloud domena tohttps://api.enterprise.apigee.com
; Twoja domena może być jednak inna, jeśli przy użyciu Edge Private Cloud. - Zapisz plik
setenv.sh
. - Uruchom skrypt wdrażania:
./deploy.sh
- Jeśli wdrożenie się powiedzie, uruchom skrypt wywołujący:
./invoke.sh
Skrypt wywołujący wywołuje polecenie cURL, które wygląda tak:
curl http://$org-$env.$api_domain/java-cookbook/json
Odpowiedź wygląda mniej więcej tak:
< HTTP/1.1 200 OK < Date: Tue, 09 May 2017 20:31:08 GMT < Content-Type: APPLICATION/JSON; CHARSET=UTF-8 < Content-Length: 68 < Connection: keep-alive < Access-Control-Allow-Origin: * < ETag: W/"44-RA5ERT/MMLIK54NVBWBSZG" < X-Powered-By: APIGEE < Server: Apigee Router < * Curl_http_done: called premature == 0 * Connection #0 to host willwitman-test.apigee.net left intact {"FIRSTNAME":"JOHN","LASTNAME":"DOE","CITY":"SAN JOSE","STATE":"CA"}
Przepływ serwera proxy
To ujęcie narzędzia do śledzenia przedstawiające przepływ serwera proxy:
Struktura serwera proxy
To jest struktura serwera proxy. Zwróć uwagę, że plik JAR w katalogu
Katalog apiproxy/resources/java
. Plik JAR jest wymagany. Udostępniamy je w przypadku
ale jeśli wykonujesz pracę niestandardową, musisz ją utworzyć samodzielnie, a następnie skopiować
lokalizacji. Wskazówki dotyczące kompilowania i wdrażania wywołań w języku Java znajdziesz w artykule Jak utworzyć środowisko w języku Java
.
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
Informacje o kodzie w Javie
Zasady objaśnień w Javie uruchamiają poniższy kod w Javie, który konwertuje nagłówki odpowiedzi i makro treść odpowiedzi na wielkie litery. Pamiętaj, że program wykorzystuje pakiety Apigee. Te pakiety udostępnia obiekty i metody, które umożliwiają bezpośrednią interakcję z serwerem proxy. Metody które umożliwiają pobieranie i ustawianie zmiennych przepływu, nagłówków, treści wiadomości i nie tylko.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import java.util.Set; public class ResponseUppercase implements Execution{ public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { Set headers = messageContext.getMessage().getHeaderNames(); for (String header : headers) { String h = messageContext.getMessage().getHeader(header).toUpperCase(); messageContext.getMessage().setHeader(header, h); } String content = messageContext.getMessage().getContent(); messageContext.getMessage().setContent(content.toUpperCase()); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
Sprawdzanie przykładowego serwera proxy
Pozostawimy Ci to polecenie, aby otworzyć serwer proxy i sprawdzić pliki. Oto zasady dotyczące wywołań języka Java. Zwróć uwagę, jak odwołuje się do klasy wykonywanej przez objaśnienie oraz do pliku JAR. Wszystkie objaśnienia w Javie są zgodne z tym wzorcem. Zapoznaj się też z zasadami dotyczącymi objaśnień w języku Java.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>