แปลงการตอบกลับเป็นตัวพิมพ์ใหญ่ด้วยข้อความไฮไลต์ Java

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

หากคุณกำลังลองใช้ข้อความเสริมของ Java เป็นครั้งแรก เราขอแนะนำให้คุณเริ่มต้นด้วยวิธีสร้าง Java ข้อความไฮไลต์

ตัวอย่างตำราอาหารนี้สาธิตวิธีสร้างนโยบาย JavaScript แบบง่ายที่เรียกใช้ รหัส Java ที่กำหนดเองภายในบริบทของโฟลว์พร็อกซี

โค้ดตัวอย่างทำหน้าที่อะไร

พร็อกซี API ในตัวอย่างนี้เรียกใช้บริการเป้าหมายที่ส่งคืนการตอบกลับ JSON แบบง่าย ระบบวางนโยบายการเรียก Java ไว้ในขั้นตอนการตอบสนองเป้าหมาย โค้ด Java จะแปลงส่วนหัวและ เนื้อหาการตอบกลับอักษรตัวพิมพ์ใหญ่ ตัวอย่างเช่น แต่ก็จะแสดงให้เห็นว่า เพื่อรับโค้ด Java ที่กำหนดเองซึ่งทํางานในบริบทของพร็อกซี API บน Edge

ดูตัวอย่าง

ดาวน์โหลดโปรเจ็กต์

เพื่อความสะดวก คุณสามารถดาวน์โหลดโปรเจ็กต์นี้จากที่เก็บ api-platform-samples ของ Apigee ใน GitHub

  1. ดาวน์โหลดหรือโคลน api-platform-samples ลงในระบบของคุณ
  2. ในเทอร์มินัลหรือตัวแก้ไขโค้ดที่คุณเลือก ให้ไปที่ api-platform-samples/doc-samples/java-cookbook โปรเจ็กต์

คอมไพล์โค้ดด้วย Maven

โปรเจ็กต์ได้รับการตั้งค่าเพื่อให้คุณคอมไพล์ด้วย Maven ได้ หากคุณต้องการใช้งาน javac เราจะแสดงตัวอย่างต่อไปนี้จากตัวอย่างของ Maven

  1. ตรวจสอบว่าคุณได้ติดตั้ง Maven แล้ว ดังนี้
    mvn -version
    
  2. เรียกใช้สคริปต์ java-cookbook/buildsetup.sh สคริปต์นี้จะติดตั้ง ทรัพยากร Dependency ของ JAR ที่จำเป็นในที่เก็บ Maven ในเครื่อง
  3. cd ไปยังไดเรกทอรี java-cookbool/callout
  4. ดำเนินการ Maven:
    mvn clean package
    
  5. หากต้องการ ให้ตรวจสอบว่าไฟล์ JAR edge-custom-policy-java-cookbook.jar เดิมคือ คัดลอกไปยัง java-cookbook/apiproxy/resources/java แล้ว นี่คือตำแหน่งที่จำเป็นสำหรับ ไฟล์ JAR ที่ต้องการทำให้ใช้งานได้ด้วยพร็อกซี

คอมไพล์ด้วย Javac

หากต้องการใช้ javac เพื่อคอมไพล์โค้ด คุณสามารถใช้วิธีที่คล้ายกับ การติดตาม (จากไดเรกทอรี java-cookbook) ได้รับไฟล์ JAR ที่จำเป็นแล้ว ให้คุณในไดเรกทอรี java-cookbook/lib

  1. CD ถึง api-platform-samples/doc-samples/java-cookbook
  2. ตรวจสอบว่าคุณมี Javac ในเส้นทางของคุณ

    javac -version
    
  3. เรียกใช้คำสั่ง Javac ต่อไปนี้:

    วันที่
    javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
    
  4. คัดลอกไฟล์ JAR ไปยังไดเรกทอรี apiproxy/resources/java นี่คือสถานที่ที่กำหนด สำหรับไฟล์ JAR ที่ต้องการทำให้ใช้งานได้ด้วยพร็อกซี

    cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
    

ทำให้ใช้งานได้และเรียกใช้พร็อกซี

สคริปต์การทำให้ใช้งานได้จะอยู่ในไดเรกทอรี ./java-cookbook แต่ก่อนที่คุณจะวิ่ง คุณจำเป็นต้องตั้งค่าอย่างรวดเร็ว

  1. CD ถึง api-platform-samples/doc-samples/java-cookbook
  2. หากยังไม่ได้ดำเนินการ ให้เปิดไฟล์ ../../setup/setenv.sh และแก้ไข ตามที่ระบุด้วยข้อมูลบัญชี Apigee ของคุณ นั่นคือชื่อผู้ใช้ของคุณ (ที่อยู่อีเมล ที่เชื่อมโยงกับบัญชีของคุณ) ชื่อองค์กร และโดเมนที่คุณใช้สร้าง API การโทรเพื่อการจัดการ ตัวอย่างเช่น โดเมนสำหรับระบบคลาวด์ Edge https://api.enterprise.apigee.com; แต่โดเมนของคุณอาจแตกต่างออกไปหากคุณ โดยใช้ Edge Private Cloud
  3. บันทึกไฟล์ setenv.sh
  4. เรียกใช้สคริปต์การทำให้ใช้งานได้:
    ./deploy.sh
    
  5. หากการปรับใช้สำเร็จ ให้เรียกใช้สคริปต์เรียกใช้:
    ./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>