วิธีใช้พร็อพเพอร์ตี้ในคําขอราคาเสนอ Java

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

ข้อความเสริมของ Java คืออะไร

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

การใช้พร็อพเพอร์ตี้ในข้อความไฮไลต์ Java

พร็อพเพอร์ตี้ให้คุณระบุคู่ชื่อ/ค่าในนโยบายไฮไลต์ Java ที่เข้าถึงได้ โค้ด Java ของคุณในระหว่างรันไทม์ คุณต้องระบุค่าสตริงลิเทอรัลสำหรับแต่ละพร็อพเพอร์ตี้ คุณไม่สามารถ ตัวแปรโฟลว์การอ้างอิงในองค์ประกอบนี้

ลองมาดูตัวอย่างข้อความไฮไลต์ Java ง่ายๆ ที่ใช้พร็อพเพอร์ตี้กัน ในตัวอย่างนี้ เรา สร้างพร็อกซีที่มีนโยบายไฮไลต์สำหรับ Java นโยบายนี้ใช้ <Properties> เพื่อระบุคู่ชื่อ/ค่า ในโค้ด Java เรา ดึงค่าและนำไปใช้เพื่อตั้งค่าส่วนหัวการตอบกลับ

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

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

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

นโยบายข้อความไฮไลต์สำหรับ Java

นโยบายใช้องค์ประกอบ <Properties> องค์ประกอบนี้ช่วยให้คุณระบุ คู่ของชื่อ/ค่า ระหว่างรันไทม์ โค้ด Java จะเข้าถึงค่าของพร็อพเพอร์ตี้ที่ระบุไว้ใน ดังที่จะได้เห็นเร็วๆ นี้

<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>

ตัวอย่างโค้ด Java

โค้ด Java สำหรับตัวอย่างนี้แสดงวิธีการเรียกพร็อพเพอร์ตี้ที่ระบุไว้ใน นโยบายข้อความไฮไลต์ Java ในโปรเจ็กต์ตัวอย่าง คุณจะเห็นซอร์สโค้ดใน java-properties/callout/src/main/java/JavaProperties.java เราจะอธิบายถึง สำหรับการคอมไพล์และทำให้โค้ดนี้ใช้งานได้ภายหลังในหัวข้อนี้

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;
		}
	}
}

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

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

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

คอมไพล์ด้วย Javac (ไม่บังคับ)

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

  1. CD ถึง api-platform-samples/doc-samples/java-properties
  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/JavaProperties.java
    
  4. สร้างไฟล์ JAR


    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. คัดลอกไฟล์ JAR ไปยังไดเรกทอรี apiproxy/resources/java นี่คือสถานที่ที่กำหนด สำหรับไฟล์ JAR ที่ต้องการทำให้ใช้งานได้ด้วยพร็อกซี
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java
    

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

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

  1. CD ถึง api-platform-samples/doc-samples/java-properties
  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-properties
    

    พร็อกซีจะแสดงผลส่วนหัว: X-PROPERTY-HELLO: WORLD! โปรดทราบว่าใน ในนโยบาย เราจึงเพิ่มคู่ของชื่อ/ค่าพร็อพเพอร์ตี้ "prop/WORLD!" ข้อความไฮไลต์สำหรับ Java ดึงค่า "WORLD!" และกำหนดไว้ในส่วนหัวที่ชื่อ X-PROPERTY-HELLO:

    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));