نحوه استفاده از دارایی‌ها در نوشته راهنمای Java

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

«تماس با Java» چیست؟

اگر با «تماس‌های خروجی Java» آشنایی ندارید، توصیه می‌کنیم با نحوه ایجاد تماس خروجی Java شروع کنید.

استفاده از دارایی‌ها در نوشته راهنمای Java

ویژگی‌ها به شما امکان می‌دهند جفت‌های نام/مقدار را در خط‌مشی پیام‌واره Java مشخص کنید که می‌توانید در زمان اجرا از کد Java خود به آن‌ها دسترسی داشته باشید. باید مقدار رشته‌ای تحت‌اللفظی برای هر دارایی مشخص کنید؛ نمی‌توانید متغیرهای جریان را در این عنصر ارجاع دهید.

بیایید یک مثال ساده از تماس با Java را که از دارایی‌ها استفاده می‌کند، گام‌به‌گام مرور کنیم. در این مثال، یک پراکسی ایجاد می‌کنیم که شامل خط‌مشی تماس با Java است. خط‌مشی از عنصر <Properties> برای مشخص کردن جفت نام/مقدار استفاده می‌کند. در کد Java، مقدار را بازیابی می‌کنیم و از آن برای تنظیم سرصفحه پاسخ استفاده می‌کنیم.

بارگیری پروژه

برای ساده‌تر کردن کار، می‌توانید این پروژه را از مخزن api-platform-samples در GitHub بارگیری کنید.

  1. api-platform-samples را در سیستم خود بارگیری یا شبیه‌سازی کنید.
  2. در پایانه یا ویرایشگر کد انتخابی‌تان، به api-platform-samples/doc-samples/java-properties پروژه بروید.

خط‌مشی تماس با جاوا

خط‌مشی از عنصر <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 شما نشان داده شده است ویرایش کنید: نام کاربری شما (آدرس ایمیل منسوب به حسابتان)، نام سازمانتان، و دامنه‌ای که برای برقراری تماس‌های مدیریت API استفاده می‌کنید. برای مثال، برای ابر Edge، دامنه https://api.enterprise.apigee.com است؛ بااین‌حال، اگر از «ابر خصوصی Edge» استفاده می‌کنید، دامنه شما ممکن است متفاوت باشد.
  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"));