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.
- api-platform-samples API'sini sisteminize indirin veya klonlayın.
- 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.
- Maven'in yüklü olduğundan emin olun:
mvn -version
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.- cd'den
java-properties/callout
dizinine ekleyin. - Maven'i çalıştırın:
mvn clean package
- Dilerseniz
edge-custom-policy-java-properties.jar
JAR dosyasınınjava-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.
- cd'den
api-platform-samples/doc-samples/java-properties
öğesine dokunun. - Yolunuzda javac uzantısı bulunduğ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şturun:
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 gerekiyor.
- cd'den
api-platform-samples/doc-samples/java-properties
konumuna - 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 alanhttps://api.enterprise.apigee.com
'dir. Ancak Edge Private Cloud kullanıyorsanız alanınız farklı olabilir. setenv.sh
dosyasını kaydedin.- Dağıtım komut dosyasını yürütün:
./deploy.sh
- 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 veX-PROPERTY-HELLO
adlı bir üst bilgide ayarlar:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));