Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Java çağrısı nedir?
Java çağrıları konusunda yeniyseniz Java çağrısı oluşturma başlıklı makaleyle başlamanızı öneririz.
Java çağrısında özellik kullanma
Özellikler, Java çağrı politikası içinde ad/değer çiftleri belirtmenize olanak tanır. Bu çiftlere çalışma zamanında Java kodunuzdan erişebilirsiniz. Her özellik için değişmez bir dize değeri belirtmeniz gerekir. Bu öğede akış değişkenlerine referans veremezsiniz.
Özellikleri kullanan basit bir Java çağrısı örneğini inceleyelim. Bu örnekte, Java çağrısı politikası içeren bir proxy oluşturuyoruz. Politika, ad/değer çiftini belirtmek için <Properties> öğesini kullanır. Java kodunda değeri alıp 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.
- api-platform-samples'ı sisteminize indirin veya klonlayın.
- Seçtiğiniz bir terminalde veya kod düzenleyicide
api-platform-samples/doc-samples/java-propertiesprojesine gidin.
Java çağrısı politikası
Politika, <Properties> öğesini kullanır. Bu öğe, ad/değer çiftlerini belirtmenize olanak tanır. Kısa süre sonra göreceğimiz gibi, Java kodunuz çalışma zamanında 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 örnekteki Java kodu, Java çağrısı politikasında belirtilen bir özelliğin nasıl alınacağını gösterir. Örnek projede kaynak kodunu java-properties/callout/src/main/java/JavaProperties.java içinde bulabilirsiniz. Bu kodun derlenmesi ve dağıtılmasıyla ilgili adımları bu konunun ilerleyen bölümlerinde ele alacağı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 derleme
Proje, Maven ile derleme yapabileceğiniz şekilde ayarlanır. javac kullanmak istiyorsanız örnek de ekleriz.
- Maven'in yüklü olduğundan emin olun:
mvn -version
- Komut dosyasını çalıştırın
java-properties/buildsetup.sh. Bu komut dosyası, gerekli JAR bağımlılıklarını yerel Maven deponuza yükler. java-properties/calloutdizinine gidin.- Maven'i yürütün:
mvn clean package
- İsterseniz JAR dosyasının
edge-custom-policy-java-properties.jarjava-properties/apiproxy/resources/javakonumuna kopyalandığını doğrulayın. Bu, bir proxy ile dağıtmak istediğiniz JAR dosyaları için gerekli konumdur.
javac ile derleme (isteğe bağlı)
Kodu derlemek için javac kullanmak istiyorsanız aşağıdaki gibi bir işlem yapabilirsiniz (java-properties dizininden). Gerekli JAR dosyaları, java-properties/lib dizininde sizin için sağlanır.
- cd
api-platform-samples/doc-samples/java-properties - Yolunuzda javac olduğundan emin olun.
javac -version
- 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
- JAR dosyası oluşturma:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- 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 gerekir.
api-platform-samples/doc-samples/java-propertiesdizinine gidin.- Henüz yapmadıysanız
../../setup/setenv.shdosyasını açın ve Apigee hesap bilgilerinizle (kullanıcı adınız, kuruluş adınız ve API yönetimi çağrıları yapmak için kullandığınız alan) belirtildiği şekilde düzenleyin. Örneğin, Edge Cloud için alanhttps://api.enterprise.apigee.comşeklindedir. Ancak Edge Private Cloud kullanıyorsanız alanınız farklı olabilir. setenv.shdosyasını kaydedin.- Dağıtım komut dosyasını yürütün:
./deploy.sh
- Dağıtım başarılı olursa invoke komut dosyasını çalıştırın:
./invoke.sh
Invoke komut dosyası, aşağıdaki gibi bir cURL komutu çağırır:
curl http://$org-$env.$api_domain/java-properties
Proxy,
X-PROPERTY-HELLO: WORLD!başlığını döndürür. Politikaya"prop/WORLD!"özellik adı/değer çiftini eklediğimizi unutmayın. Java çağrısı,"WORLD!"değerini alır veX-PROPERTY-HELLOadlı bir üstbilgiye ayarlar:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));