يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
إذا كنت تجرّب وسيلة شرح بلغة Java للمرة الأولى، ننصحك بالبدء بالاطّلاع على كيفية إنشاء وسيلة شرح بلغة Java.
يوضّح نموذج كتاب الطبخ هذا كيفية إنشاء سياسة JavaCallout بسيطة لتنفيذ رمز JavaScript مخصّص ضمن سياق تدفّق الخادم الوكيل.
ماذا يفعل نموذج التعليمة البرمجية؟
يستدعي الخادم الوكيل لواجهة برمجة التطبيقات في هذا النموذج خدمة مستهدفة تعرض استجابة JSON بسيطة. يتم وضع سياسة وسائل الشرح بلغة Java في مسار الاستجابة المستهدَف. يحوِّل رمز Java عناوين الرد ومحتواه إلى أحرف كبيرة. وهو مثال بسيط مع أنّه يوضّح كيفية تشغيل رمز Java مخصّص في سياق خادم وكيل لواجهة برمجة التطبيقات على 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 المحلي. - القرص المضغوط إلى دليل
java-cookbool/callout
. - نفِّذ Maven:
mvn clean package
- تأكَّد من أنّه تم نسخ ملف JAR
edge-custom-policy-java-cookbook.jar
إلىjava-cookbook/apiproxy/resources/java
، إذا أردت ذلك. وهذا هو المكان المطلوب لملفات JAR التي تريد نشرها باستخدام خادم وكيل.
التجميع باستخدام javac
إذا أردت استخدام javac
لتجميع الرمز، يمكنك تنفيذ ما يلي (من دليل java-cookbook
). يتم توفير ملفات JAR المطلوبة لك في دليل java-cookbook/lib
.
- القرص المضغوط إلى
api-platform-samples/doc-samples/java-cookbook
. - تأكد من أن لديك 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 التي تريد نشرها باستخدام خادم وكيل.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
نشر الخادم الوكيل والاتصال به
يتم توفير نص برمجي للتفعيل في دليل ./java-cookbook
. ولكن قبل تشغيله،
عليك إجراء إعداد سريع.
- القرص المضغوط إلى
api-platform-samples/doc-samples/java-cookbook
- إذا لم يسبق لك إجراء ذلك، افتح الملف
../../setup/setenv.sh
وعدِّله كما هو موضّح في معلومات حسابك على Apigee: اسم المستخدم (عنوان البريد الإلكتروني المرتبط بحسابك) واسم مؤسستك والنطاق الذي تستخدمه لإجراء طلبات إدارة واجهة برمجة التطبيقات. على سبيل المثال، بالنسبة إلى سحابة Edge، يكون النطاق هوhttps://api.enterprise.apigee.com
، ولكن قد يكون نطاقك مختلفًا إذا كنت تستخدم Edge Private Cloud. - احفظ الملف
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"}
تدفق الخادم الوكيل
هذه لقطة لأداة التتبُّع التي تعرِض تدفق الخادم الوكيل:
بنية الخادم الوكيل
وهذا هو هيكل الخادم الوكيل. ويُرجى العِلم أنّ الملف يتضمّن ملف 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 التالي، الذي يحوِّل عناوين الاستجابة ونص الاستجابة إلى أحرف كبيرة. لاحظ أن البرنامج يستخدم حزم خاصة بـ 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>