คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
หากคุณลองใช้ไฮไลต์ของ Java เป็นครั้งแรก เราขอแนะนำให้เริ่มต้นด้วยวิธีสร้างไฮไลต์ของ Java
ตัวอย่างตำราอาหารนี้แสดงวิธีสร้างนโยบาย JavaScript แบบง่ายๆ ที่เรียกใช้โค้ด Java ที่กำหนดเองภายในบริบทของโฟลว์พร็อกซี
โค้ดตัวอย่างทำหน้าที่อะไร
พร็อกซี API ในตัวอย่างนี้เรียกใช้บริการเป้าหมายที่ส่งคืนการตอบกลับ JSON แบบง่าย ระบบจะวางนโยบายคำขอราคาเสนอ Java ไว้ในขั้นตอนการตอบสนองเป้าหมาย โค้ด 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
สคริปต์นี้จะติดตั้งทรัพยากร Dependency ของ JAR ที่จำเป็นในที่เก็บ Maven ในเครื่อง - cd ลงในไดเรกทอรี
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
- cd เป็น
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
แต่ก่อนที่จะเรียกใช้ คุณต้องการตั้งค่าด่วนก่อน
- cd เป็น
api-platform-samples/doc-samples/java-cookbook
- หากยังไม่ได้ดำเนินการ ให้เปิดไฟล์
../../setup/setenv.sh
แล้วแก้ไขไฟล์ตามที่ระบุด้วยข้อมูลบัญชี Apigee ได้แก่ ชื่อผู้ใช้ของคุณ (อีเมลที่เชื่อมโยงกับบัญชี) ชื่อองค์กร และโดเมนที่ใช้เรียกการจัดการ API เช่น โดเมนสำหรับ Edge Cloud คือ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
ต้องระบุ JAR เราจัดเตรียมไว้ให้สำหรับตัวอย่าง แต่หากคุณทำงานที่กำหนดเอง คุณต้องสร้างเองและคัดลอกลงในตำแหน่งนี้ ดูคำแนะนำเกี่ยวกับการคอมไพล์และการทำให้ไฮไลต์ Java ใช้งานได้ที่วิธีสร้างไฮไลต์ Java
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
เกี่ยวกับโค้ด Java
นโยบายการเรียก Java เรียกใช้โค้ด 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 โปรดสังเกตวิธีที่คีย์ดังกล่าวอ้างอิงคลาสที่ไฮไลต์เรียกใช้และไฟล์ JAR นโยบายไฮไลต์ทั้งหมดของ Java เป็นไปตามรูปแบบนี้ โปรดดูนโยบายไฮไลต์ Java
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>