Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Java çağrısı nedir?
Apigee Edge, aşağıdakiler gibi yaygın API yönetimi gereksinimlerini ele alan bir dizi politika sunar: gibi pek çok alanda uzmandır.
Ancak, API'nizin uygulanmayan özel davranış gerektirdiği bazı durumlar da vardır standart bir politika içinde. Bu durumlarda Apigee, komut dosyası oluşturmanıza olanak tanıyan çeşitli seçenekler sunar. veya özelleştirilmiş API davranışını kodlayın. Yaklaşımlardan biri, Java'da istenen davranışı uygulamaktır.
Java'nın desteklenen sürümleri için Desteklenenler bölümüne bakın yazılım ve desteklenen sürümler hakkında daha fazla bilgi edinin.
Proxy'de Java kodunu nasıl kullanabilirim?
Java çağrı politikası, Java kodunu yürütme proxy akışı içinden çağırmanıza olanak tanır. Java'nız kodun, kodun etkileşime geçmesine izin veren belirli Edge'e özgü Java arayüzlerini uygulaması gerekir proxy ile çalışır. Örneğin, üstbilgileri, sorguyu almak ve ayarlamak parametreleri, akış değişkenleri ve proxy'nin geçerli akış bağlamında yer alan diğer varlıklar.
Ne zaman Java çağrısı kullanmalıyım?
Şimdi Java çağrılarının kullanışlı olduğu ve bunun için başka yaklaşımları da göz önünde bulundurun.
Öncelikle, alternatif yaklaşımlar
Java çağrısı kullanmadan önce, kullanabileceğiniz alternatif yaklaşımların olabileceğini unutmayın . Örneğin:
- Uzak hizmetlere HTTP API çağrıları gibi basit işlemler için Hizmet Çağrısı politikası. Hizmet Açıklama Metni Politikası'nı inceleyin.
- İleti içeriğiyle ilgili değiştirme veya çıkarma gibi nispeten basit etkileşimler için HTTP üstbilgileri, parametreleri veya mesaj içeriği için JavaScript ya da Python dillerini kullanabilirsiniz.
Java koduyla neler yapabilirsiniz?
Java çağrısı şu temel işlemleri destekler:
- İstek veya yanıt mesajlarını inceleme ya da değiştirme
- Akış değişkenlerini alma ve ayarlama. Edge akış değişkenlerine erişmek için Java yöntemlerini kullanabilirsiniz. Anahtar/Değer Eşleme (KVM) bilgilerine erişmek istiyorsanız bir KVM politikası kullanın. KVM değerlerini akış değişkenlerine atadıktan sonra akış değişkenlerine eklemeyi unutmayın.
- Harici hizmetler aranıyor
- Hataları yükseltme
- Hata mesajlarını ve durum kodlarını değiştirme
Java'da yapamayacağınız işlemler kod
Çoğu sistem çağrısına izin verilmez. Aşağıdakileri yapamazsınız:
- Dahili dosya sisteminin okuma veya yazma işlemleri yapmasını sağlayın. Bu, burada yer alan hiçbir Dahili dosya sistemlerinde okuma/yazma işlemleri için Java paketleri; ancak dış kaynaklarla da uzaktan arama yapabilirsiniz.
- Cihazınızda geçerli işlem, işlem listesi veya CPU/bellek kullanımı hakkında bilgi alın yardımcı oluyorum.
- "expressions-1.0.0.jar" ve "message-flow-1.0.0.jar" öğelerinin kaynak koduna erişin.
Bu tür çağrıların bazıları işe yarar ancak desteklenmez ve etkin bir şekilde devre dışı bırakılabilirler. istediğiniz zaman izleyebilirsiniz. Kodunuzda bu tür çağrılar yapmaktan kaçının.
Apigee Edge'e dahil olan Java kitaplıklarını kullanmayın veya bunlara güvenmeyin. Bu kitaplıklar yalnızca Edge ürün işlevleri içindir ve bir kitaplığın kullanılabilir olacağının garantisi yoktur. her şeyi kapsıyor. Bu tür kitaplıkları kullanıyorsanız bunları üretim dışı demolarda kullanın gerekir.
Hello Java açıklama metni
Temel hello World Java açıklama metni örneğindeki adımları inceleyelim. Bu örnekte, "hello world" değerini döndüren Java açıklama metnine sahip basit proxy tıklayın. Proxy, bir değer döndürebilir arasındaki fark:
- Bir "kullanıcı adı" geçerseniz "ad" içeren başlık değeri için proxy şunu döndürür:
.Hello, <name>!
- Üstbilgiyi çıkarırsanız proxy yalnızca şu sonucu döndürür:
."Hello, Guest!"
Başlangıç projesini indirin
İşinizi kolaylaştırmak amacıyla, Apigee'de GitHub'da sizin için hazırladığımız temel bir projemiz var api-platform-samples deposudur.
- api-platform-samples öğesini sisteminize indirin veya klonlayın.
- Tercih ettiğiniz bir terminalde veya kod düzenleyicide
api-platform-samples/doc-samples/java-hello
projesi.
Java kodunu yazma
- Java kaynak dosyasını açın:
java-hello/callout/src/main/java/HelloJava.java
. Bu dosya, uygulayacağımız ana Java sınıfının iskelet bir sürümüdür. İçe aktarılan Edge Java Çağrı kodu için paket gerekir. Bu sınıflar şunları yapmanıza olanak tanıyan yöntemler sunar: kullanılması gerekir. Derleme ve dağıtma adımlarını açıklayacağız. kısa bir süre içinde gönderin.
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; public class HelloJava implements Execution { public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { // Your code here. return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
- Yorum yapılan satırı (
// Your code here
) şu kodla değiştirin:
String name = messageContext.getMessage().getHeader("username"); if (name != null && name.length()>0) { messageContext.getMessage().setContent("Hello, " + name + "!"); messageContext.getMessage().removeHeader("username"); } else { messageContext.getMessage().setContent("Hello, Guest!"); }
- Dosyayı kaydedin.
.
Kodunuzu Maven ile derleyin
Proje, Maven ile derleyebileceğiniz şekilde ayarlanmıştır. Raporlarınızda
javac
, Maven örneğinin uygulanmasına bir örnek eklenecek.
- Maven'in yüklü olduğundan emin olun:
.mvn -version
java-hello/buildsetup.sh
komut dosyasını yürütün. Bu komut dosyası, gerekli dosyayı JAR bağımlılarını yerel Maven depolarına taşıyın.- cd'yi
java-hello/callout
dizinine ekleyin. - Maven'i yürüt:
.mvn clean package
- İsterseniz
edge-custom-policy-java-hello.jar
JAR dosyasının şuydu olduğunu doğrulayın:java-hello/apiproxy/resources/java
klasörüne kopyalandı. Bu, Proxy ile dağıtmak istediğiniz JAR dosyaları.
Javac ile derle (isteğe bağlı)
Önceki bölümde, gerekli Java JAR dosyasını bir
Maven komutu. Alternatif olarak, kodu derlemek için javac
kullanmak isterseniz şunu da yapabilirsiniz:
aşağıdakine benzer bir sonuç (java-hello
dizininden). Zorunlu
JAR dosyaları sizin için java-hello/lib
dizininde sağlanır.
- cd'yi
api-platform-samples/doc-samples/java-hello
konumuna ekleyin. - Yolunuzda javac bulunduğundan emin olun.
javac -version
- 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/HelloJava.java
Bu,com/apigeesample/HelloJava.class
oluşturur. - Derlenmiş sınıfı içeren bir JAR dosyası oluşturun:
apiproxy/resources/java
dizini. Bu, JAR için gerekli olan konumdur proxy ile dağıtmak istediğiniz dosyaları seçin. Bu işlemi aşağıdaki komutu çalıştırarak yapabilirsiniz: komutunajava-hello
ekleyebilirsiniz (sondaki noktayı unutmayın).
jar cvf apiproxy/resources/java/edge-custom-policy-java-hello.jar -C com .
Proxy'yi dağıtma ve çağırma
./java-hello
dizininde bir dağıtım komut dosyası sağlandı. Ama çalıştırmadan önce
hızlı bir kurulum yapmanız gerekir.
- cd'den
api-platform-samples/doc-samples/java-hello
'ye - 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 alanhttps://api.enterprise.apigee.com
; ancak dilerseniz kullanarak giriş yapın. 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ğ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-hello -H "username:Will"
Örneğin, "Hello, Will!
Adı değiştirmek için
invoke.sh
komut dosyasını düzenleyebilir veya cURL çağrısıyla üstbilgi kaldırılır, ardından komut "Hello, Guest!" değerini döndürür.
Proxy hakkında
Bu proxy'de kullanılan politikaları hızlıca inceleyelim. Politikaların nerede geçerli olduğuna dikkat edin konumlandırılmayı ve bunun nedenini.
Mesaj atama politikası
ProxyEndpoint istek akışına bir mesaj atama politikası eklenir. Google istekten kullanıcı adı başlığını kopyalar ve bunu yanıta atar. Bu işlem, kullanıcı adı başlığına erişmek için yanıt akışına ekli Java Çağrı Politikası ve bu başlığın değerini kullanarak özel bir yanıt gövdesi oluşturabilirsiniz.
<AssignMessage async="false" continueOnError="false" enabled="true" name="CopyHeader"> <DisplayName>CopyHeader</DisplayName> <Copy source="request"> <Headers> <Header name="username"/> </Headers> </Copy> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
Java açıklama metni politikası
Java açıklama metni politikası yanıt akışına eklenir. Bunun nedeni,
özel Java kodu, yanıt başlıklarında ve mesajda değişiklik yapar. Politikanın ClassName
öğesi, politika tarafından yürütülen ana sınıfı belirtir. ResourceURL öğesi
oluşturduğunuz ve resources/java
dizinine eklediğiniz JAR dosyasının adı
temsil eder.
<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://edge-custom-policy-java-hello.jar</ResourceURL> </JavaCallout>
Java açıklama metni hakkında bilmeniz gerekenler
Java çağrısı uygulamayla ilgili dikkat edilmesi gereken önemli noktalar şunlardır:
com.apigee.flow.execution
vecom.apigee.flow.message
paket. Bu paketler JAR dosyasına eklenmelidir paketlenmiş ve dağıtılır. Java JAR'ınızı Yönetim Arayüzü proxy'si üzerinden yükleyebilirsiniz veya API proxy'lerindeki/resources/java
dizinine ekleyerek yardımcı olmaktır.- Yürütme arayüzünü uygular. API proxy'si içinde yürütülen herhangi bir Java kodu, yürütmeye başlar.
- Java Çağrı politikası gerçek bir kod içermez. Bunun yerine, Java Çağrı Politikası bir JAR'de paketlemeniz gereken Java "kaynak".
- Kaçınılması gereken paket adları: io.apigee etiketini kullanmayın veya com.apigee kodunu Java Açıklama Metinlerinde paket adları olarak kullanabilirsiniz. Bunlar, diğer Apigee modüllerini de kullanabilirsiniz.
- Java Açıklama metniniz bağımsız JAR olarak paketlenmiş ek üçüncü taraf kitaplıklar kullanıyorsa
daha sonra bu JAR dosyalarını da
/resources/java
dizinine yerleştirin. bunların çalışma zamanında doğru şekilde yüklendiğinden emin olun. - Birden fazla JAR varsa bunları ek kaynak olarak eklemeniz yeterlidir. Herhangi bir teknik
politika yapılandırmasını ek JAR dosyalarına bakacak şekilde değiştirmelidir. İş ilanlarını
/resources/java
yeterlidir. - Java JAR'ları yükleme hakkında daha fazla bilgi için Kaynak dosyaları bölümüne bakın.