Zmień pisownię odpowiedzi na wielkie litery za pomocą objaśnienia Java

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.

  1. Pobierz lub skopiuj do systemu plik api-platform-samples.
  2. 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.

  1. Sprawdź, czy masz zainstalowaną aplikację Maven:
    mvn -version
    
  2. Uruchom skrypt java-cookbook/buildsetup.sh. Skrypt ten instaluje wymagane zależności JAR w lokalnym repozytorium Maven.
  3. cd do katalogu java-cookbool/callout.
  4. Uruchom narzędzie Maven:
    mvn clean package
    
  5. Jeśli chcesz, sprawdź, czy plik JAR edge-custom-policy-java-cookbook.jar został skopiowano do folderu java-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.

  1. CD do api-platform-samples/doc-samples/java-cookbook.
  2. Upewnij się, że ścieżka zawiera bibliotekę javac.

    javac -version
    
  3. 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
    
  4. 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ę.

  1. CD: api-platform-samples/doc-samples/java-cookbook
  2. 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 to https://api.enterprise.apigee.com; Twoja domena może być jednak inna, jeśli przy użyciu Edge Private Cloud.
  3. Zapisz plik setenv.sh.
  4. Uruchom skrypt wdrażania:
    ./deploy.sh
    
  5. 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>