كيفية استخدام السمات في وسيلة شرح على JavaScript

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

ما وسيلة شرح Java؟

إذا كنت مبتدئًا في استخدام وسائل الشرح بلغة Java، ننصحك بالبدء بمقالة كيفية إنشاء وسيلة شرح بلغة Java.

استخدام المواقع في وسيلة شرح بلغة Java

تتيح لك الخصائص تحديد أزواج الاسم/القيمة في سياسة وسائل الشرح في Java التي يمكنك الوصول إليها من خلال رمز Java في وقت التشغيل. يجب تحديد قيمة سلسلة حرفية لكل سمة، ولا يمكنك الإشارة إلى متغيّرات التدفق في هذا العنصر.

لنتصفح مثالاً بسيطًا لوسيلة شرح Java يستخدم الخصائص. في هذا المثال، ننشئ خادمًا وكيلاً يتضمّن سياسة وسيلة شرح بلغة Java. تستخدم السياسة العنصر <Properties> لتحديد زوج الاسم/القيمة. في رمز Java، نسترد القيمة ونستخدمها لضبط عنوان الاستجابة.

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

لتبسيط الأمور، يمكنك تنزيل هذا المشروع من مستودع api-platform-samples Apigee على GitHub.

  1. يمكنك تنزيل api-platform-samples أو نسخها إلى نظامك.
  2. في أيّ وحدة طرفية أو أداة تعديل رموز من اختيارك، انتقِل إلى مشروع 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

يوضّح لك رمز JavaScript لهذا النموذج كيفية استرداد سمة تم تحديدها في سياسة وسائل الشرح في 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، سندرج مثالاً أيضًا.

  1. تأكَّد من تثبيت Maven من خلال:
    mvn -version
    
  2. نفِّذ النص البرمجي java-properties/buildsetup.sh. يثبّت هذا النص البرمجي تبعيات JAR المطلوبة في مستودع Maven المحلي.
  3. القرص المضغوط إلى دليل java-properties/callout.
  4. نفِّذ Maven:
    mvn clean package
    
  5. تأكَّد من أنّه تم نسخ ملف JAR edge-custom-policy-java-properties.jar إلى java-properties/apiproxy/resources/java إذا أردت ذلك. وهذا هو الموقع المطلوب لملفات JAR التي تريد نشرها باستخدام خادم وكيل.

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

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

  1. القرص المضغوط إلى api-platform-samples/doc-samples/java-properties.
  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/JavaProperties.java
    
  4. إنشاء ملف JAR:

    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. انسخ ملف JAR إلى دليل apiproxy/resources/java. وهذا هو الموقع المطلوب لملفات JAR التي تريد نشرها باستخدام خادم وكيل.
    cp edge-custom-policy-java-properties.jar apiproxy/resources/java
    

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

يتم توفير نص برمجي للتفعيل في دليل ./java-properties. ولكن قبل تشغيله، عليك إجراء إعداد سريع.

  1. القرص المضغوط إلى api-platform-samples/doc-samples/java-properties
  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-properties
    

    يعرض الخادم الوكيل العنوان X-PROPERTY-HELLO: WORLD!. يُرجى العِلم أنّنا أضفنا في السياسة زوج اسم السمة/القيمة "prop/WORLD!". تسترد وسيلة شرح Java القيمة "WORLD!" وتضبطها في عنوان يُسمى X-PROPERTY-HELLO:

    messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));