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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Java çağrısı nedir?

Java açıklama metinleri konusunda yeniyseniz Java açıklama metinleri nasıl oluşturulur? açıklama metni).

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

Özellikler, erişebileceğiniz bir Java çağrı politikasında ad/değer çiftleri belirtebilmenizi sağlar. yardımcı olur. Her mülk için bir dize değeri belirtmelisiniz; şunu yapamaz: referans akış değişkenlerini ifade eder.

Şimdi, özellikleri kullanan basit bir Java açıklama metni örneğinin üzerinden geçelim. Bu örnekte Java çağrı politikası içeren bir proxy oluşturun. Bu politika, <Properties> öğesi. Java kodunda, değeri almalı ve bunu kullanarak bir yanıt başlığı ayarlamalıdır.

Projeyi indirme

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

  1. api-platform-samples öğesini sisteminize indirin veya klonlayın.
  2. Tercih ettiğiniz bir terminalde veya kod düzenleyicide api-platform-samples/doc-samples/java-properties projesi.

Java çağrı politikası

Politika, <Properties> öğesini kullanır. Bu öğe, Ad/değer çiftlerinin bir örneğini görebilirsiniz. Çalışma zamanında, Java kodunuz şu sayfada belirtilen özelliklerin değerlerine erişebilir: birazdan görülecek biçimde değiştirebilirsiniz.

<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ı politikası. Örnek projede kaynak kodu şu konumda bulabilirsiniz: java-properties/callout/src/main/java/JavaProperties.java Adım adım rehberlikle adımlarına göz atın.

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. Raporlarınızda javac, bir örnek de ekleriz.

  1. Maven'in yüklü olduğundan emin olun:
    mvn -version
    
    .
  2. java-properties/buildsetup.sh komut dosyasını yürütün. Bu komut dosyası yerel Maven deponuzda gerekli JAR bağımlılıklarını test edin.
  3. cd'yi java-properties/callout dizinine ekleyin.
  4. Maven'i yürütme:
    mvn clean package
    
    .
  5. İsterseniz JAR dosyasının edge-custom-policy-java-properties.jar olduğunu doğrulayın. java-properties/apiproxy/resources/java klasörüne kopyalandı. Bu, gerekli proxy ile dağıtmak istediğiniz JAR dosyalarının konumunu belirtin.

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

Kodu derlemek için javac kullanmak isterseniz şuna benzer bir işlem yapabilirsiniz: (java-properties dizininden). Gerekli JAR dosyaları sağlanmış sizin için java-properties/lib dizininde bulabilirsiniz.

  1. cd'yi api-platform-samples/doc-samples/java-properties konumuna ekleyin.
  2. Yolunuzda javac bulunduğundan emin olun.

    javac -version
    
  3. Aşağıdaki javac komutunu yürütü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, gerekli konumdur proxy ile dağıtmak istediğiniz JAR dosyaları içindir.
    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ğlandı. Ancak sizden önce çalıştırmak istiyorsanız hızlı bir kurulum yapmanız gerekir.

  1. cd'den api-platform-samples/doc-samples/java-properties'ye
  2. Henüz yapmadıysanız ../../setup/setenv.sh dosyasını açın ve düzenleyin Apigee hesap bilgilerinizle birlikte belirtildiği gibi: kullanıcı adınız (e-posta adresi hesabınızla ilişkilendirilen), kuruluşunuzun adı ve API oluşturmak için kullandığınız alan adı yönetim çağrıları. Örneğin, Edge Cloud için alan https://api.enterprise.apigee.com; ancak dilerseniz kullanarak giriş yapın.
  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ğrı komut dosyasını yürütün:
    ./invoke.sh
    
    .

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

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

    Proxy şu üstbilgiyi döndürür: X-PROPERTY-HELLO: WORLD!. Bu politikasına bir özellik adı/değer çifti ("prop/WORLD!") ekledik. Java açıklama metni "WORLD!" değerini alır ve X-PROPERTY-HELLO:

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