Jak używać właściwości w objaśnieniu Java

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Co to jest wywołanie Javy?

Jeśli nie masz doświadczenia z wywołaniami Javy, zacznij od artykułu Tworzenie wywołania Javy.

Używanie właściwości w wywołaniu Javy

Właściwości umożliwiają określanie par nazwa/wartość w zasadach wywołania Javy, do których można uzyskać dostęp z kodu Java w czasie działania. Dla każdej właściwości musisz podać wartość literału ciągu znaków. W tym elemencie nie możesz odwoływać się do zmiennych przepływu.

Przyjrzyjmy się prostemu przykładowi wywołania Javy, które używa właściwości. W tym przykładzie utworzymy serwer proxy, który zawiera zasady wywołania Javy. Zasady używają elementu <Properties> do określania pary nazwa/wartość. W kodzie Java pobieramy wartość i używamy jej do ustawienia nagłówka odpowiedzi.

Pobieranie projektu

Aby uprościć sprawę, możesz pobrać ten projekt z repozytorium Apigee api-platform-samples w GitHub.

  1. Pobierz lub sklonuj repozytorium api-platform-samples na swój komputer.
  2. W terminalu lub wybranym edytorze kodu przejdź do api-platform-samples/doc-samples/java-properties projektu.

Zasady wywołania Javy

Zasady używają elementu <Properties>. Ten element umożliwia określanie par nazwa/wartość. W czasie działania kod Java może uzyskiwać dostęp do wartości właściwości określonych w zasadach, co zobaczymy za chwilę.

<JavaCallout name="java-callout">         
    <ClassName>com.apigeesample.JavaProperties</ClassName>         
    <ResourceURL>java://edge-custom-policy-java-properties.jar</ResourceURL>         
    <Properties>              
        <Property name="prop">WORLD!</Property>             
    </Properties> 
</JavaCallout>

Przykładowy kod Java

Kod Java w tym przykładzie pokazuje, jak pobrać właściwość określoną w zasadach wywołania Javy. W projekcie przykładowym kod źródłowy znajdziesz w java-properties/callout/src/main/java/JavaProperties.java. Kroki kompilowania i wdrażania tego kodu omówimy w dalszej części tego artykułu.

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.Map;

public class JavaProperties implements Execution {

	private Map <String,String> properties; // read-only

	public JavaProperties(Map <String,String> properties) {
	        this.properties = properties;
	}

	public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) {

		try {

		    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));

            return ExecutionResult.SUCCESS;

		} catch (Exception e) {
			return ExecutionResult.ABORT;
		}
	}
}

Kompilowanie kodu za pomocą Maven

Projekt jest skonfigurowany tak, aby można go było skompilować za pomocą Maven. Jeśli chcesz użyć javac, podamy też przykład.

  1. Sprawdź, czy masz zainstalowany program Maven:
    mvn -version
  2. Uruchom skrypt java-properties/buildsetup.sh. Ten skrypt instaluje wymagane zależności JAR w lokalnym repozytorium Maven.
  3. Przejdź do katalogu java-properties/callout.
  4. Uruchom Maven:
    mvn clean package
  5. Jeśli chcesz, sprawdź, czy plik JAR edge-custom-policy-java-properties.jar został skopiowany do katalogu java-properties/apiproxy/resources/java. Jest to wymagana lokalizacja plików JAR, które chcesz wdrożyć za pomocą serwera proxy.

Kompilowanie za pomocą javac (opcjonalnie)

Jeśli chcesz skompilować kod za pomocą javac, możesz zrobić coś podobnego do tego (z katalogu java-properties). Wymagane pliki JAR są dostępne w katalogu java-properties/lib.

  1. Przejdź do katalogu api-platform-samples/doc-samples/java-properties.
  2. Upewnij się, że masz javac w ścieżce.

    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/JavaProperties.java
  4. Utwórz plik JAR:

    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. Skopiuj plik JAR do katalogu apiproxy/resources/java. Jest to wymagana lokalizacja plików JAR, które chcesz wdrożyć za pomocą serwera proxy.
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java

Wdrażanie i wywoływanie serwera proxy

Skrypt wdrożenia znajduje się w katalogu ./java-properties. Zanim go uruchomisz, musisz przeprowadzić szybką konfigurację.

  1. Przejdź do katalogu api-platform-samples/doc-samples/java-properties.
  2. Jeśli jeszcze tego nie zrobisz, otwórz plik ../../setup/setenv.sh i edytuj go zgodnie z informacjami o koncie Apigee: nazwą użytkownika (adresem e-mail powiązanym z kontem), nazwą organizacji i domeną, której używasz do wykonywania wywołań zarządzania interfejsami API. Na przykład w przypadku chmury Edge domena to https://api.enterprise.apigee.com. Jeśli jednak używasz Edge Private Cloud, domena może być inna.
  3. Zapisz plik setenv.sh.
  4. Uruchom skrypt wdrożenia:
    ./deploy.sh
  5. Jeśli wdrożenie się powiedzie, uruchom skrypt wywołania:
    ./invoke.sh

    Skrypt wywołania wywołuje polecenie cURL, które wygląda tak:

    curl  http://$org-$env.$api_domain/java-properties

    Serwer proxy zwraca nagłówek: X-PROPERTY-HELLO: WORLD!. Pamiętaj, że w zasadach dodaliśmy parę nazwa/wartość właściwości "prop/WORLD!". Wywołanie Javy pobiera wartość "WORLD!" i ustawia ją w nagłówku o nazwie X-PROPERTY-HELLO:

    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));