كيفية استخدام السمات في وسيلة شرح على 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

يوضح لك رمز Java لهذا النموذج كيفية استرداد خاصية تم تحديدها في سياسة وسيلة شرح 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"));