Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Apa yang dimaksud dengan info Java?
Jika Anda baru menggunakan info Java, sebaiknya mulai dengan Cara membuat info Java info.
Menggunakan properti dalam info Java
Properti memungkinkan Anda menentukan pasangan nama/nilai dalam kebijakan info Java yang dapat Anda akses kode Java pada runtime. Anda harus menentukan nilai string literal untuk setiap properti; kamu tidak bisa variabel aliran referensi dalam elemen ini.
Mari kita pelajari contoh info Java sederhana yang menggunakan properti. Dalam contoh ini,
membuat proxy yang menyertakan kebijakan pemanggilan Java. Kebijakan ini menggunakan
Elemen <Properties>
untuk menentukan pasangan nama/nilai. Dalam kode Java, kita
mengambil nilai dan menggunakannya untuk menyetel header respons.
Mendownload project
Untuk mempermudah, Anda dapat mendownload project ini dari repositori api-platform-samples Apigee di GitHub.
- Download atau clone api-platform-samples ke sistem Anda.
- Di editor kode atau terminal pilihan Anda, buka
Project
api-platform-samples/doc-samples/java-properties
.
Kebijakan info Java
Kebijakan ini menggunakan elemen <Properties>
. Elemen ini memungkinkan Anda menentukan
pasangan nama/nilai. Saat runtime, kode Java Anda dapat mengakses nilai properti yang ditetapkan dalam
kebijakan tersebut, seperti
yang akan segera kita lihat.
<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>
Contoh kode Java
Kode Java untuk contoh ini menunjukkan cara mengambil properti yang telah ditetapkan dalam
Kebijakan info Java. Dalam contoh project, Anda dapat menemukan kode sumber di
java-properties/callout/src/main/java/JavaProperties.java
. Kami akan memandu Anda
langkah-langkah untuk mengompilasi dan men-deploy kode ini nanti dalam topik ini.
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; } } }
Kompilasi kode Anda dengan Maven
Project disiapkan agar Anda dapat mengompilasi dengan Maven. Jika Anda ingin menggunakan
javac
, kami juga akan menyertakan contoh.
- Pastikan Anda telah menginstal Maven:
mvn -version
- Jalankan skrip
java-properties/buildsetup.sh
. Skrip ini menginstal dependensi JAR yang diperlukan dalam repo Maven lokal Anda. - ke direktori
java-properties/callout
. - Jalankan Maven:
mvn clean package
- Jika Anda mau, verifikasi bahwa file JAR
edge-custom-policy-java-properties.jar
disalin kejava-properties/apiproxy/resources/java
. Ini diperlukan untuk file JAR yang ingin Anda deploy dengan proxy.
Mengompilasi dengan javac (opsional)
Jika ingin menggunakan javac
untuk mengompilasi kode, Anda dapat melakukan sesuatu yang mirip dengan
mengikuti (dari direktori java-properties
). File JAR yang diperlukan disediakan
untuk Anda dalam direktori java-properties/lib
.
- cd ke
api-platform-samples/doc-samples/java-properties
. - Pastikan Anda memiliki javac di jalur Anda.
javac -version
- Jalankan perintah javac berikut:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Buat file JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Salin file JAR ke direktori apiproxy/resources/java. Ini adalah lokasi yang diperlukan
untuk file JAR yang ingin Anda deploy dengan proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Men-deploy dan memanggil proxy
Skrip deploy disediakan di direktori ./java-properties
. Namun, sebelum Anda
menjalankannya, Anda perlu
melakukan pengaturan cepat.
- cd ke
api-platform-samples/doc-samples/java-properties
- Jika Anda belum melakukannya, buka file
../../setup/setenv.sh
dan edit seperti yang ditunjukkan dengan informasi akun Apigee Anda: nama pengguna Anda (alamat email yang dikaitkan dengan akun Anda), nama organisasi, dan domain yang digunakan untuk membuat API manajemen proyek. Misalnya, untuk cloud Edge, domainnya adalahhttps://api.enterprise.apigee.com
; Namun, domain Anda mungkin berbeda jika Anda menggunakan Edge Private Cloud. - Simpan file
setenv.sh
. - Jalankan skrip deploy:
./deploy.sh
- Jika deployment berhasil, jalankan skrip pemanggilan:
./invoke.sh
Skrip pemanggilan memanggil perintah cURL yang terlihat seperti ini:
curl http://$org-$env.$api_domain/java-properties
Proxy akan menampilkan header:
X-PROPERTY-HELLO: WORLD!
. Ingatlah bahwa dalam kebijakan, kami menambahkan pasangan nama/nilai properti"prop/WORLD!"
. Info Java mengambil nilai"WORLD!"
dan menyetelnya dalam header yang disebutX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));