המרת התשובה לאותיות רישיות באמצעות הסבר של Java

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

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

הדוגמה הזו של ספר המתכונים מדגימה איך ליצור מדיניות פשוטה של 'יתרונות מרכזיים ב-Java' שמפעילה קוד Java בהתאמה אישית בהקשר של תהליך בשרת proxy.

מה עושה הקוד לדוגמה?

שרת ה-API של ה-API בדוגמה הזו קורא לשירות יעד שמחזיר תגובת JSON פשוטה. המדיניות של תוספי יתרונות מרכזיים של Java ממוקמת בתהליך התגובה ליעד. קוד Java ממיר את הכותרות והתוכן של התגובה לאותיות רישיות. זו דוגמה פשוטה. עם זאת, היא מדגימה איך להפעיל קוד Java בהתאמה אישית בהקשר של API proxy ב-Edge.

רוצה לנסות את הדוגמה?

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

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

הידור באמצעות 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 שברצונך לפרוס באמצעות שרת proxy.

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

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

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

תהליך ההעברה דרך שרת ה-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>