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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Co to jest objaśnienie Java?

Jeśli nie masz doświadczenia z objaśnieniami w Javie, najpierw przeczytaj artykuł Jak utworzyć objaśnienie w Javie.

Używanie właściwości w objaśnieniu Java

Właściwości umożliwiają określanie par nazwa-wartość w zasadzie objaśnień Java, do których masz dostęp w kodzie Java w czasie działania. W przypadku każdej właściwości musisz określić literałową wartość ciągu znaków. W tym elemencie nie możesz się odwoływać do zmiennych przepływu.

Przyjrzyjmy się prostemu przykładowi objaśnienia w Javie, które korzysta z właściwości. W tym przykładzie tworzymy serwer proxy z zasadą dotyczącą objaśnień Java. Zasada określa parę nazwa/wartość za pomocą elementu <Properties>. Pobieramy wartość z kodu Java i używamy jej do ustawienia nagłówka odpowiedzi.

Pobierz projekt

Dla uproszczenia możesz pobrać ten projekt z repozytorium Apigee api-platform-samples na GitHubie.

  1. Pobierz lub skopiuj parametr api-platform-samples do swojego systemu.
  2. W wybranym terminalu lub edytorze kodu otwórz projekt api-platform-samples/doc-samples/java-properties.

Zasada dotycząca objaśnień Java

Zasada używa elementu <Properties>. Ten element umożliwia określenie par nazwa-wartość. W czasie działania kod Java ma dostęp do wartości właściwości określonych w zasadzie, jak za chwilę zobaczymy.

<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 zasadzie objaśnień Java. W przykładowym projekcie kod źródłowy znajduje się w sekcji java-properties/callout/src/main/java/JavaProperties.java. Kroki kompilowania i wdrażania tego kodu omówimy w dalszej części tego tematu.

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ą narzędzia Maven

Projekt jest skonfigurowany tak, aby można było skompilować projekt w narzędziu Maven. Jeśli chcesz użyć właściwości javac, pokażemy Ci też przykład.

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

Kompilacja za pomocą języka javac (opcjonalnie)

Jeśli chcesz skompilować kod za pomocą polecenia javac, możesz zrobić to w podobny sposób (z katalogu java-properties). Wymagane pliki JAR znajdziesz w katalogu java-properties/lib.

  1. CD na api-platform-samples/doc-samples/java-properties.
  2. Upewnij się, że w ścieżce jest plik javac.

    javac -version
    
  3. Wykonaj 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. To jest 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 wdrażania znajduje się w katalogu ./java-properties. Ale zanim ją uruchomisz, musisz ją szybko skonfigurować.

  1. cd do api-platform-samples/doc-samples/java-properties
  2. Otwórz plik ../../setup/setenv.sh i edytuj go zgodnie z informacjami o Twoim 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 przez interfejs API. Na przykład w przypadku Edge Cloud domena to https://api.enterprise.apigee.com, ale Twoja domena może być inna, jeśli używasz Edge Private Cloud.
  3. Zapisz plik setenv.sh.
  4. Uruchom skrypt wdrożenia:
    ./deploy.sh
    
  5. Jeśli wdrożenie się powiedzie, wykonaj skrypt wywoływania:
    ./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 do zasady dodaliśmy parę nazwa/wartość właściwości "prop/WORLD!". Objaśnienie w Javie pobiera wartość "WORLD!" i ustawia ją w nagłówku o nazwie X-PROPERTY-HELLO:

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