Java çağrısında özellik kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Java çağrısı nedir?

Java açıklama metinleri konusunda yeniyseniz Java açıklama metni nasıl oluşturulur? başlıklı makaleyle başlamanızı öneririz.

Java çağrısında özellikleri kullanma

Özellikler, çalışma zamanında Java kodunuzdan erişebileceğiniz bir Java çağrı politikasında ad/değer çiftleri belirtebilmenizi sağlar. Her mülk için bir değişmez dize değeri belirtmeniz gerekir. Bu öğede akış değişkenlerine başvuruda bulunamazsınız.

Şimdi, özelliklerin kullanıldığı basit bir Java çağrısı örneğine göz atalım. Bu örnekte, Java çağrı politikası içeren bir proxy oluşturacağız. Politika, ad/değer çiftini belirtmek için <Properties> öğesini kullanır. Java kodunda, değeri alır ve bir yanıt başlığı ayarlamak için kullanırız.

Projeyi indirme

İşleri kolaylaştırmak için bu projeyi GitHub'daki Apigee api-platform-samples deposundan indirebilirsiniz.

  1. api-platform-samples API'sini sisteminize indirin veya klonlayın.
  2. Seçtiğiniz bir terminal veya kod düzenleyicide api-platform-samples/doc-samples/java-properties projesine gidin.

Java çağrı politikası

Politika, <Properties> öğesini kullanır. Bu öğe, ad/değer çiftlerini belirtebilmenizi sağlar. Çalışma zamanında, kısa bir süre sonra göreceğiniz gibi, Java kodunuz politikada belirtilen özelliklerin değerlerine erişebilir.

<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>

Örnek Java kodu

Bu örneğin Java kodu, Java çağrısı politikasında belirtilen bir özelliği nasıl alacağınızı göstermektedir. Örnek projede, kaynak kodu java-properties/callout/src/main/java/JavaProperties.java bölümünde bulabilirsiniz. Bu konunun ilerleyen bölümlerinde, bu kodu derleme ve dağıtmayla ilgili adımları adım adım açıklayacağız.

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;
		}
	}
}

Kodunuzu Maven ile derleyin

Proje, Maven ile derleyebileceğiniz şekilde ayarlanmıştır. javac kullanmak istiyorsanız bir örnek de ekleyeceğiz.

  1. Maven'in yüklü olduğundan emin olun:
    mvn -version
    
  2. java-properties/buildsetup.sh komut dosyasını çalıştırın. Bu komut dosyası, yerel Maven deponuza gerekli JAR bağımlılıklarını yükler.
  3. cd'den java-properties/callout dizinine ekleyin.
  4. Maven'i çalıştırın:
    mvn clean package
    
  5. Dilerseniz edge-custom-policy-java-properties.jar JAR dosyasının java-properties/apiproxy/resources/java konumuna kopyalandığını doğrulayın. Bu, proxy ile dağıtmak istediğiniz JAR dosyaları için gerekli konumdur.

Javac ile derleyin (isteğe bağlı)

Kodu derlemek için javac kullanmak istiyorsanız aşağıdakine benzer bir işlem yapabilirsiniz (java-properties dizininden). Gerekli JAR dosyaları java-properties/lib dizininde sağlanır.

  1. cd'den api-platform-samples/doc-samples/java-properties öğesine dokunun.
  2. Yolunuzda javac uzantısı bulunduğundan emin olun.

    javac -version
    
  3. Aşağıdaki javac komutunu çalıştırın:

    javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
    
  4. JAR dosyası oluşturun:

    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. JAR dosyasını apiproxy/resources/java dizinine kopyalayın. Bu, proxy ile dağıtmak istediğiniz JAR dosyaları için gerekli konumdur.
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java
    

Proxy'yi dağıtma ve çağırma

./java-properties dizininde bir dağıtım komut dosyası sağlanır. Ancak çalıştırmadan önce hızlı bir kurulum yapmanız gerekiyor.

  1. cd'den api-platform-samples/doc-samples/java-properties konumuna
  2. Henüz yapmadıysanız ../../setup/setenv.sh dosyasını açın ve Apigee hesap bilgilerinizle (kullanıcı adınız (hesabınızla ilişkili e-posta adresi), kuruluş adınız ve API yönetimi çağrıları yapmak için kullandığınız alan) belirtilen şekilde düzenleyin. Örneğin, Edge bulutu için alan https://api.enterprise.apigee.com'dir. Ancak Edge Private Cloud kullanıyorsanız alanınız farklı olabilir.
  3. setenv.sh dosyasını kaydedin.
  4. Dağıtım komut dosyasını yürütün:
    ./deploy.sh
    
  5. Dağıtım başarılı olursa çağırma komut dosyasını çalıştırın:
    ./invoke.sh
    

    Çağrı komut dosyası, aşağıdakine benzer bir cURL komutu çağırır:

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

    Proxy, şu üst bilgiyi döndürür: X-PROPERTY-HELLO: WORLD!. Politikada "prop/WORLD!" mülk ad/değer çifti eklediğimizi unutmayın. Java açıklama metni "WORLD!" değerini alır ve X-PROPERTY-HELLO adlı bir üst bilgide ayarlar:

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