نحوه استفاده از خواص در فراخوانی جاوا

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

فراخوانی جاوا چیست؟

اگر با فراخوانی جاوا تازه کار هستید، توصیه می کنیم با نحوه ایجاد فراخوان جاوا شروع کنید.

استفاده از خواص در فراخوانی جاوا

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

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

پروژه را دانلود کنید

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

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

خط مشی فراخوانی جاوا

این خط مشی از عنصر <Properties> استفاده می کند. این عنصر به شما امکان می دهد جفت نام/مقدار را مشخص کنید. همانطور که به زودی خواهیم دید، در زمان اجرا، کد جاوا شما می تواند به مقادیر ویژگی های مشخص شده در خط مشی دسترسی داشته باشد.

<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-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. cd به دایرکتوری 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 -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. cd به api-platform-samples/doc-samples/java-properties
  2. اگر قبلاً این کار را انجام نداده اید، فایل ../../setup/setenv.sh را باز کنید و آن را همانطور که با اطلاعات حساب Apigee نشان داده شده است ویرایش کنید: نام کاربری (آدرس ایمیل مرتبط با حساب شما)، نام سازمان شما، و دامنه ای که برای برقراری تماس های مدیریت API استفاده می کنید. به عنوان مثال، برای Edge cloud، دامنه https://api.enterprise.apigee.com است. با این حال، اگر از Edge Private Cloud استفاده می کنید، ممکن است دامنه شما متفاوت باشد.
  3. فایل setenv.sh ذخیره کنید.
  4. اسکریپت deploy را اجرا کنید:
    ./deploy.sh
    
  5. اگر استقرار با موفقیت انجام شد، اسکریپت فراخوانی را اجرا کنید:
    ./invoke.sh
    

    اسکریپت فراخوانی یک دستور cURL را فراخوانی می کند که به شکل زیر است:

    curl  http://$org-$env.$api_domain/java-properties
    

    پروکسی هدر را برمی گرداند: X-PROPERTY-HELLO: WORLD! . به یاد داشته باشید که در خط‌مشی، یک جفت نام/مقدار دارایی "prop/WORLD!" . فراخوانی جاوا مقدار "WORLD!" را بازیابی می کند. و آن را در یک هدر به نام X-PROPERTY-HELLO قرار می دهد:

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