כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
מהו הסבר Java?
אם זו הפעם הראשונה שאתם משתמשים בנכסי יתרונות מרכזיים ב-Java, מומלץ להתחיל עם המאמר איך יוצרים יתרונות מרכזיים של Java.
שימוש במאפיינים בתוסף יתרונות מרכזיים ב-Java
מאפיינים מאפשרים לציין צמדי שם/ערך במדיניות יתרונות מרכזיים של Java, שאליהם אפשר לגשת מקוד ה-Java בזמן ריצה. צריך לציין ערך מחרוזת מילולי לכל מאפיין. לא ניתן להפנות למשתני זרימה ברכיב הזה.
נבחן דוגמה פשוטה ליתרונות מרכזיים ב-Java, שמשתמשת במאפיינים. בדוגמה הזו, אנחנו יוצרים שרת proxy שכולל מדיניות יתרונות מרכזיים של Java. המדיניות משתמשת
ברכיב <Properties>
כדי לציין צמד של שם/ערך. בקוד Java, אנחנו מאחזרים את הערך ומשתמשים בו כדי להגדיר כותרת תגובה.
מורידים את הפרויקט
כדי לפשט את הדברים, אפשר להוריד את הפרויקט הזה ממאגר Apigee api-platform-samples ב-GitHub.
- מורידים או משכפלים את api-platform-samples במערכת.
- במסוף או בעורך קוד לבחירתכם, עוברים אל
הפרויקט
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
, נכלול גם דוגמה.
- מוודאים ש-Maven מותקן במכשיר:
mvn -version
- מפעילים את הסקריפט
java-properties/buildsetup.sh
. הסקריפט מתקין את יחסי התלות הנדרשים של JAR במאגר Maven. - cd לספרייה
java-properties/callout
. - הפעלת Maven:
mvn clean package
- ניתן לאמת שקובץ ה-JAR
edge-custom-policy-java-properties.jar
הועתק אלjava-properties/apiproxy/resources/java
. זהו המיקום הנדרש לקובצי JAR שאתם רוצים לפרוס באמצעות שרת proxy.
הידור באמצעות javac (אופציונלי)
אם רוצים להשתמש ב-javac
כדי להדר את הקוד, אפשר לעשות משהו שדומה
לפעולה הבאה (מהספרייה java-properties
). קובצי ה-JAR הנדרשים מסופקים
בשבילך בספרייה java-properties/lib
.
- cd ל-
api-platform-samples/doc-samples/java-properties
. - מוודאים שיש Javac בנתיב.
javac -version
- מריצים את פקודת ה-javac הבאה:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- יוצרים קובץ JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- מעתיקים את קובץ ה-JAR לספרייה apiproxy/resources/java. זהו המיקום הנדרש לקובצי JAR שברצונך לפרוס באמצעות שרת proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
פריסה והפעלה של שרת ה-proxy
סקריפט לפריסה מסופק בספרייה ./java-properties
. אבל לפני שמפעילים אותו, צריך לבצע הגדרה מהירה.
- CD אל
api-platform-samples/doc-samples/java-properties
- אם עדיין לא עשית זאת, פותחים את הקובץ
../../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-properties
שרת ה-proxy מחזיר את הכותרת:
X-PROPERTY-HELLO: WORLD!
. חשוב לזכור שבמדיניות הוספנו צמד של שם/ערך של מאפיין"prop/WORLD!"
. נכס היתרונות המרכזיים של Java מאחזר את הערך"WORLD!"
ומגדיר אותו בכותרת שנקראתX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));