Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Jika Anda mencoba panggilan Java untuk pertama kalinya, sebaiknya mulai dengan Cara membuat panggilan Java.
Contoh cookbook ini menunjukkan cara membuat kebijakan JavaCallout sederhana yang menjalankan kode Java kustom dalam konteks alur proxy.
Apa fungsi kode contoh?
Proxy API dalam contoh ini memanggil layanan target yang menampilkan respons JSON sederhana. Kebijakan Java Callout ditempatkan pada alur respons target. Kode Java mengonversi header dan konten respons menjadi huruf besar. Ini adalah contoh sederhana; namun, contoh ini menggambarkan cara membuat kode Java kustom berfungsi dalam konteks proxy API di Edge.
Coba sampel
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 terminal atau editor kode pilihan Anda, buka project
api-platform-samples/doc-samples/java-cookbook.
Kompilasi kode Anda dengan Maven
Project disiapkan sehingga Anda dapat mengompilasi dengan Maven. Jika Anda ingin menggunakan
javac, kami juga akan menyertakan contoh setelah contoh Maven.
- Pastikan Anda telah menginstal Maven:
mvn -version
- Jalankan skrip
java-cookbook/buildsetup.sh. Skrip ini menginstal dependensi JAR yang diperlukan di repositori Maven lokal Anda. - Buka direktori
java-cookbool/callout. - Jalankan Maven:
mvn clean package
- Jika Anda ingin, verifikasi bahwa file JAR
edge-custom-policy-java-cookbook.jartelah disalin kejava-cookbook/apiproxy/resources/java. Ini adalah lokasi yang diperlukan untuk file JAR yang ingin Anda deploy dengan proxy.
Kompilasi dengan javac
Jika ingin menggunakan javac untuk mengompilasi kode, Anda dapat melakukan sesuatu yang mirip dengan
berikut (dari direktori java-cookbook). File JAR yang diperlukan disediakan
untuk Anda di direktori java-cookbook/lib.
- cd ke
api-platform-samples/doc-samples/java-cookbook. - 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/ResponseUppercase.java
- Salin file JAR ke direktori apiproxy/resources/java. Ini adalah lokasi yang diperlukan
untuk file JAR yang ingin Anda deploy dengan proxy.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
Men-deploy dan memanggil proxy
Skrip deployment disediakan di direktori ./java-cookbook. Namun, sebelum menjalankannya, Anda perlu melakukan penyiapan cepat.
- cd ke
api-platform-samples/doc-samples/java-cookbook - Jika Anda belum melakukannya, buka file
../../setup/setenv.shdan edit seperti yang ditunjukkan dengan informasi akun Apigee Anda: nama pengguna (alamat email yang terkait dengan akun Anda), nama organisasi, dan domain yang Anda gunakan untuk melakukan panggilan pengelolaan API. Misalnya, untuk Edge Cloud, domainnya adalahhttps://api.enterprise.apigee.com; namun, domain Anda mungkin berbeda jika Anda menggunakan Edge Private Cloud. - Simpan file
setenv.sh. - Jalankan skrip deployment:
./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-cookbook/json
Responsnya akan terlihat seperti ini:
< HTTP/1.1 200 OK < Date: Tue, 09 May 2017 20:31:08 GMT < Content-Type: APPLICATION/JSON; CHARSET=UTF-8 < Content-Length: 68 < Connection: keep-alive < Access-Control-Allow-Origin: * < ETag: W/"44-RA5ERT/MMLIK54NVBWBSZG" < X-Powered-By: APIGEE < Server: Apigee Router < * Curl_http_done: called premature == 0 * Connection #0 to host willwitman-test.apigee.net left intact {"FIRSTNAME":"JOHN","LASTNAME":"DOE","CITY":"SAN JOSE","STATE":"CA"}
Alur proxy
Berikut adalah screenshot alat rekaman aktivitas yang menunjukkan alur proxy:

Struktur proxy
Ini adalah struktur proxy. Perhatikan bahwa file ini menyertakan file JAR di
direktori apiproxy/resources/java. JAR wajib diisi. Kami menyediakannya untuk sampel, tetapi jika Anda melakukan pekerjaan kustom, Anda harus membuatnya sendiri dan menyalinnya ke lokasi ini. Untuk panduan tentang cara mengompilasi dan men-deploy panggilan Java, lihat Cara membuat panggilan Java.
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
Tentang kode Java
Kebijakan Java Callout menjalankan kode Java berikut, yang mengonversi header respons dan isi respons menjadi huruf besar. Perhatikan bahwa program ini menggunakan paket khusus Apigee. Paket ini menyediakan objek dan metode yang dapat Anda gunakan untuk berinteraksi langsung dengan alur proxy. Ada metode yang memungkinkan Anda mendapatkan dan menyetel variabel alur, header, konten pesan, dan lainnya.
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.Set; public class ResponseUppercase implements Execution{ public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { Set headers = messageContext.getMessage().getHeaderNames(); for (String header : headers) { String h = messageContext.getMessage().getHeader(header).toUpperCase(); messageContext.getMessage().setHeader(header, h); } String content = messageContext.getMessage().getContent(); messageContext.getMessage().setContent(content.toUpperCase()); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
Memeriksa proxy contoh
Kami menyerahkan kepada Anda untuk membuka proxy dan memeriksa file. Berikut adalah kebijakan Java Callout. Perhatikan cara merujuk class yang dieksekusi oleh balon dan file JAR. Semua kebijakan Panggilan Java mengikuti pola ini. Lihat juga kebijakan Panggilan Java.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>