איך להשתמש במאפיינים בנכס יתרונות מרכזיים של Java

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מהו הסבר Java?

אם זו הפעם הראשונה שאתם משתמשים בנכסי יתרונות מרכזיים ב-Java, מומלץ להתחיל עם המאמר איך יוצרים יתרונות מרכזיים של Java.

שימוש במאפיינים בתוסף יתרונות מרכזיים ב-Java

מאפיינים מאפשרים לציין צמדי שם/ערך במדיניות יתרונות מרכזיים של Java, שאליהם אפשר לגשת מקוד ה-Java בזמן ריצה. צריך לציין ערך מחרוזת מילולי לכל מאפיין. לא ניתן להפנות למשתני זרימה ברכיב הזה.

נבחן דוגמה פשוטה ליתרונות מרכזיים ב-Java, שמשתמשת במאפיינים. בדוגמה הזו, אנחנו יוצרים שרת proxy שכולל מדיניות יתרונות מרכזיים של Java. המדיניות משתמשת ברכיב <Properties> כדי לציין צמד של שם/ערך. בקוד Java, אנחנו מאחזרים את הערך ומשתמשים בו כדי להגדיר כותרת תגובה.

מורידים את הפרויקט

כדי לפשט את הדברים, אפשר להוריד את הפרויקט הזה ממאגר Apigee api-platform-samples ב-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. הסקריפט מתקין את יחסי התלות הנדרשים של 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 שאתם רוצים לפרוס באמצעות שרת proxy.

הידור באמצעות 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 שברצונך לפרוס באמצעות שרת proxy.
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java
    

פריסה והפעלה של שרת ה-proxy

סקריפט לפריסה מסופק בספרייה ./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
    

    שרת ה-proxy מחזיר את הכותרת: X-PROPERTY-HELLO: WORLD!. חשוב לזכור שבמדיניות הוספנו צמד של שם/ערך של מאפיין "prop/WORLD!". נכס היתרונות המרכזיים של Java מאחזר את הערך "WORLD!" ומגדיר אותו בכותרת שנקראת X-PROPERTY-HELLO:

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