מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
אם אתם מנסים את ההסבר הראשון על Java, מומלץ להתחיל עם המאמר איך יוצרים Java יתרונות מרכזיים.
הדוגמה הזו מספר המתכונים מדגימה איך ליצור מדיניות JavaCallout פשוטה שמפעילה קוד Java מותאם אישית בהקשר של זרימה בשרת proxy.
.מה עושה הקוד לדוגמה?
ה-Proxy ל-API בדוגמה הזו קורא לשירות יעד שמחזיר תגובת JSON פשוטה. המדיניות בנושא יתרונות מרכזיים של Java ממוקמת בתהליך היעד לתגובה. קוד Java ממיר את הכותרות תוכן של התגובה לאותיות רישיות. זוהי דוגמה פשוטה; עם זאת, הוא ממחיש כדי שקוד Java מותאם אישית יפעל בהקשר של API Proxy ב-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
. הסקריפט מתקין את יחסי התלות הנדרשים של JAR במאגר Maven. - cd לספרייה
java-cookbool/callout
. - מפעילים את Maven:
mvn clean package
- ניתן לוודא שקובץ ה-JAR
edge-custom-policy-java-cookbook.jar
הועתק אלjava-cookbook/apiproxy/resources/java
. זה המיקום הנדרש עבור קובצי JAR שרוצים לפרוס באמצעות שרת proxy.
הידור באמצעות Javac
אם רוצים להשתמש ב-javac
כדי להדר את הקוד, אפשר לבצע פעולה דומה לזו
הבא (מהספרייה java-cookbook
). קובצי ה-JAR הנדרשים סופקו
בשבילך בספרייה java-cookbook/lib
.
- c ל
api-platform-samples/doc-samples/java-cookbook
. - חשוב לוודא שהנתיב Javac (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 שרוצים לפרוס באמצעות שרת proxy.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
פריסה וקריאה לשרת ה-proxy
סקריפט לפריסה מסופק בספרייה ./java-cookbook
. אבל לפני שתתחילו
תצטרכו לבצע הגדרה מהירה.
- cd ל-
api-platform-samples/doc-samples/java-cookbook
- אם עדיין לא עשית זאת, עליך לפתוח את הקובץ
../../setup/setenv.sh
ולערוך אותו כפי שמצוין בפרטי חשבון Apigee שלך: שם המשתמש שלך (כתובת האימייל) שמשויך לחשבון שלך), שם הארגון והדומיין שמשמש אותך ליצירת API שיחות ניהול. לדוגמה, בענן של Edge, הדומיין הואhttps://api.enterprise.apigee.com
; אבל הדומיין שלכם עשוי להיות שונה באמצעות ענן פרטי של Edge. - שומרים את קובץ ה-
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"}
תהליך עבודה בשרת proxy
זהו צילום של כלי המעקב שמראה את הזרימה של שרת ה-proxy:
מבנה שרת ה-proxy
זה המבנה של שרת ה-proxy. שימו לב שהוא כולל קובץ 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. החבילות האלה מספקים אובייקטים ושיטות שניתן להשתמש בהם כדי לקיים אינטראקציה ישירה עם הזרימה בשרת ה-proxy. שיטות כדי לקבל ולהגדיר משתני זרימה, כותרות, תוכן של הודעות ועוד.
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; } } }
בדיקת שרת ה-proxy לדוגמה
אנחנו משאירים לך את האפשרות לפתוח את שרת ה-proxy ולבדוק את הקבצים. זוהי המדיניות בנושא יתרונות מרכזיים של Java. שימו לב איך הוא מפנה למחלקה שמפעילה נכס היתרונות המרכזיים ולקובץ ה-JAR. כל היתרונות המרכזיים של Java כללי מדיניות אלה תואמים לדפוס הזה. כדאי לעיין גם במדיניות בנושא יתרונות מרכזיים של Java.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>