คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
หากลองใช้ Java Callout เป็นครั้งแรก เราขอแนะนำให้เริ่มต้นด้วยหัวข้อ วิธีสร้าง Java Callout
ตัวอย่าง Cookbook นี้แสดงวิธีสร้างนโยบาย JavaCallout อย่างง่ายที่เรียกใช้ โค้ด Java ที่กำหนดเองในบริบทของโฟลว์พร็อกซี
โค้ดตัวอย่างทำอะไร
พร็อกซี API ในตัวอย่างนี้เรียกใช้บริการเป้าหมายที่แสดงการตอบกลับ JSON อย่างง่าย นโยบาย Java Callout จะอยู่ในโฟลว์การตอบกลับเป้าหมาย โค้ด Java จะแปลงส่วนหัวและ เนื้อหาของการตอบกลับเป็นตัวพิมพ์ใหญ่ ตัวอย่างนี้เป็นตัวอย่างง่ายๆ แต่แสดงให้เห็นวิธี ทำให้โค้ด Java ที่กำหนดเองทำงานในบริบทของพร็อกซี API บน Edge
ลองใช้ตัวอย่าง
ดาวน์โหลดโปรเจ็กต์
คุณสามารถดาวน์โหลดโปรเจ็กต์นี้จากที่เก็บ api-platform-samples ของ Apigee บน GitHub เพื่อให้ง่ายต่อการใช้งาน
- ดาวน์โหลดหรือโคลน api-platform-samples ลงในระบบ
- ในเทอร์มินัลหรือโปรแกรมแก้ไขโค้ดที่เลือก ให้ไปที่
api-platform-samples/doc-samples/java-cookbookโปรเจ็กต์
คอมไพล์โค้ดด้วย Maven
โปรเจ็กต์ได้รับการตั้งค่าเพื่อให้คุณคอมไพล์ด้วย Maven ได้ หากต้องการใช้
javac เราจะใส่ตัวอย่างไว้ด้วยหลังจากตัวอย่าง Maven
- ตรวจสอบว่าคุณได้ติดตั้ง Maven แล้ว
mvn -version
- เรียกใช้สคริปต์
java-cookbook/buildsetup.shสคริปต์นี้จะติดตั้งการขึ้นต่อกันของ JAR ที่จำเป็นในที่เก็บ Maven ในเครื่อง - เปลี่ยนไดเรกทอรีเป็น
java-cookbool/callout - เรียกใช้ Maven
mvn clean package
- หากต้องการ ให้ตรวจสอบว่าไฟล์ JAR
edge-custom-policy-java-cookbook.jarถูกคัดลอกไปยังjava-cookbook/apiproxy/resources/javaแล้ว ซึ่งเป็นตำแหน่งที่จำเป็นสำหรับ ไฟล์ JAR ที่คุณต้องการติดตั้งใช้งานกับพร็อกซี
คอมไพล์ด้วย javac
หากต้องการใช้ javac เพื่อคอมไพล์โค้ด คุณสามารถทำสิ่งที่คล้ายกับตัวอย่างต่อไปนี้ (จากไดเรกทอรี java-cookbook) เราได้จัดเตรียมไฟล์ JAR ที่จำเป็นไว้ให้คุณในไดเรกทอรี java-cookbook/lib
- เปลี่ยนไดเรกทอรีเป็น
api-platform-samples/doc-samples/java-cookbook - ตรวจสอบว่าคุณมี javac ในเส้นทาง
javac -version
- เรียกใช้คำสั่ง javac ต่อไปนี้
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- คัดลอกไฟล์ JAR ไปยังไดเรกทอรี apiproxy/resources/java ซึ่งเป็นตำแหน่งที่จำเป็น
สำหรับไฟล์ JAR ที่คุณต้องการติดตั้งใช้งานกับพร็อกซี
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
ติดตั้งใช้งานและเรียกใช้พร็อกซี
เราได้จัดเตรียมสคริปต์การติดตั้งใช้งานไว้ในไดเรกทอรี ./java-cookbook แต่ก่อนที่จะเรียกใช้
คุณต้องทำการตั้งค่าอย่างรวดเร็ว
- เปลี่ยนไดเรกทอรีเป็น
api-platform-samples/doc-samples/java-cookbook - หากยังไม่ได้ดำเนินการ ให้เปิดไฟล์
../../setup/setenv.shแล้วแก้ไข ตามที่ระบุด้วยข้อมูลบัญชี Apigee ของคุณ ได้แก่ ชื่อผู้ใช้ (อีเมลที่เชื่อมโยงกับบัญชี) ชื่อองค์กร และโดเมนที่คุณใช้เพื่อทำการเรียกการจัดการ API เช่น สำหรับระบบคลาวด์ Edge โดเมนคือhttps://api.enterprise.apigee.comแต่โดเมนของคุณอาจแตกต่างออกไปหากคุณ ใช้ Edge Private Cloud - บันทึกไฟล์
setenv.sh - เรียกใช้สคริปต์การติดตั้งใช้งาน
./deploy.sh
- หากการติดตั้งใช้งานสำเร็จ ให้เรียกใช้สคริปต์การเรียกใช้
./invoke.sh
สคริปต์การเรียกใช้จะเรียกใช้คำสั่ง cURL ที่มีลักษณะดังนี้
curl http://$org-$env.$api_domain/java-cookbook/json
การตอบกลับจะมีลักษณะดังนี้
< 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"}
โฟลว์พร็อกซี
ภาพหน้าจอของเครื่องมือติดตามที่แสดงโฟลว์ของพร็อกซี

โครงสร้างพร็อกซี
โครงสร้างของพร็อกซีมีลักษณะดังนี้ โปรดทราบว่าโครงสร้างนี้มีไฟล์ JAR อยู่ใน
apiproxy/resources/java ไดเรกทอรี ซึ่งเป็นไฟล์ที่จำเป็น เราได้จัดเตรียมไฟล์นี้ไว้ให้สำหรับตัวอย่าง
แต่หากคุณกำลังทำงานที่กำหนดเอง คุณจะต้องสร้างไฟล์นี้ด้วยตนเองและคัดลอกไปยังตำแหน่งนี้
ดูคำแนะนำเกี่ยวกับการคอมไพล์และการติดตั้งใช้งาน Java Callout ได้ที่หัวข้อวิธีสร้าง Java
Callout
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
เกี่ยวกับโค้ด Java
นโยบาย Java Callout จะเรียกใช้โค้ด Java ต่อไปนี้ ซึ่งจะแปลงส่วนหัวของการตอบกลับและเนื้อหาของการตอบกลับเป็นตัวพิมพ์ใหญ่ โปรดทราบว่าโปรแกรมใช้แพ็กเกจเฉพาะของ Apigee แพ็กเกจเหล่านี้ มีออบเจ็กต์และเมธอดที่คุณใช้เพื่อโต้ตอบกับโฟลว์พร็อกซีได้โดยตรง นอกจากนี้ยังมีเมธอด ที่ช่วยให้คุณรับและตั้งค่าตัวแปรโฟลว์ ส่วนหัว เนื้อหาข้อความ และอื่นๆ ได้
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; } } }
ตรวจสอบพร็อกซีตัวอย่าง
เราจะให้คุณเปิดพร็อกซีและตรวจสอบไฟล์ด้วยตนเอง นี่คือนโยบาย Java Callout โปรดสังเกตวิธีที่นโยบายนี้อ้างอิงคลาสที่ Callout เรียกใช้และไฟล์ JAR นโยบาย Java Callout ทั้งหมดมีรูปแบบนี้ ดูนโยบาย Java Callout ด้วย
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>