تحويل الرد إلى أحرف كبيرة باستخدام وسيلة شرح بلغة Java

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

إذا كنت تجرّب وسيلة شرح Java لأول مرة، ننصحك بأن تبدأ بـ كيفية إنشاء ملف Java وسيلة شرح.

يوضح نموذج كتاب الطبخ هذا كيفية إنشاء سياسة JavaCallout بسيطة يتم تنفيذها. رمز Java مخصص ضمن سياق تدفق الخادم الوكيل.

ماذا يفعل الرمز النموذجي؟

يستدعي الخادم الوكيل لواجهة برمجة التطبيقات في هذا النموذج خدمة هدف تُرجع استجابة JSON بسيطة. تشير رسالة الأشكال البيانية يتم وضع سياسة وسائل شرح Java في مسار الاستجابة المستهدَف. تقوم رمز Java بتحويل العناوين محتوى الرد على الأحرف الكبيرة. إنه مثال بسيط؛ لكنه يوضح كيف للحصول على رمز Java مخصص يعمل في سياق خادم وكيل لواجهة برمجة التطبيقات على Edge.

تجربة النموذج

تنزيل المشروع

لتبسيط الأمور، يمكنك تنزيل هذا المشروع من مستودع api-platform-samples في Apigee على 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. قرص مضغوط إلى دليل java-cookbool/callout.
  4. تنفيذ Maven:
    mvn clean package
    
  5. عليك التأكّد من أنّ ملف JAR edge-custom-policy-java-cookbook.jar هو، إذا أردت. تم النسخ إلى java-cookbook/apiproxy/resources/java. هذا هو الموقع المطلوب ملفات JAR التي تريد نشرها باستخدام خادم وكيل.

التجميع باستخدام javac

إذا كنت تريد استخدام javac لتجميع الرمز، يمكنك تنفيذ شيء مشابه التالية (من الدليل java-cookbook). تتوفر ملفات JAR المطلوبة. في دليل java-cookbook/lib.

  1. قرص مضغوط إلى 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 التي تريد نشرها باستخدام خادم وكيل.

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

نشر الخادم الوكيل والاتصال به

يتوفر نص برمجي للنشر في دليل ./java-cookbook. ولكن قبل تشغيل فستحتاج إلى إعداد سريع.

  1. قرص مضغوط إلى api-platform-samples/doc-samples/java-cookbook
  2. افتح الملف ../../setup/setenv.sh وعدِّله، إذا لم يسبق لك إجراء ذلك. كما هو موضح في معلومات حساب Apigee: اسم المستخدم (عنوان البريد الإلكتروني المرتبطة بحسابك)، واسم مؤسستك، والنطاق الذي تستخدمه لإنشاء واجهة برمجة التطبيقات إدارة المكالمات. على سبيل المثال، بالنسبة إلى سحابة 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"}

مسار الخادم الوكيل

هذه لقطة لأداة التتبُّع تُظهر تدفق الخادم الوكيل:

بنية الخادم الوكيل

هذه هي هيكلة الخادم الوكيل. تجدر الإشارة إلى أنّه يتضمّن ملف 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. هذه الحزم لتوفير الكائنات والطرق التي يمكنك استخدامها للتفاعل مباشرةً مع تدفق الخادم الوكيل. الطُرق التي تتيح لك الحصول على متغيرات التدفق والعناوين ومحتوى الرسائل والمزيد وتعيينها.

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

فحص نموذج الوكيل

ونترك لك فتح الخادم الوكيل وفحص الملفات. في ما يلي سياسة وسائل شرح Java. لاحظ كيف يشير إلى الفئة التي تنفّذها وسيلة الشرح وملف JAR. كل وسائل شرح Java على هذا النمط. راجِع أيضًا سياسة وسائل شرح Java.

<JavaCallout name="responseUppercase">         
    <ClassName>com.apigeesample.ResponseUppercase</ClassName>         
    <ResourceURL>java://ResponseUppercase.jar</ResourceURL> 
</JavaCallout>