জাভা কলআউটে বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করবেন

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

জাভা কলআউট কি?

আপনি যদি জাভা কলআউটে নতুন হয়ে থাকেন, তাহলে আমরা সুপারিশ করি যে আপনি কীভাবে একটি Java কলআউট তৈরি করবেন তা দিয়ে শুরু করুন।

জাভা কলআউটে বৈশিষ্ট্য ব্যবহার করা

বৈশিষ্ট্যগুলি আপনাকে জাভা কলআউট নীতিতে নাম/মান জোড়া নির্দিষ্ট করতে দেয় যা আপনি রানটাইমে আপনার জাভা কোড থেকে অ্যাক্সেস করতে পারেন। আপনাকে অবশ্যই প্রতিটি সম্পত্তির জন্য একটি আক্ষরিক স্ট্রিং মান নির্দিষ্ট করতে হবে; আপনি এই উপাদানে প্রবাহ ভেরিয়েবল উল্লেখ করতে পারবেন না।

আসুন একটি সাধারণ জাভা কলআউট উদাহরণের মাধ্যমে চলুন যা বৈশিষ্ট্য ব্যবহার করে। এই উদাহরণে, আমরা একটি জাভা কলআউট নীতি সহ একটি প্রক্সি তৈরি করি। নীতি একটি নাম/মান জোড়া নির্দিষ্ট করতে <Properties> উপাদান ব্যবহার করে। জাভা কোডে, আমরা মানটি পুনরুদ্ধার করি এবং একটি প্রতিক্রিয়া শিরোনাম সেট করতে এটি ব্যবহার করি।

প্রকল্পটি ডাউনলোড করুন

জিনিসগুলি সহজ করার জন্য, আপনি GitHub-এ Apigee api-প্ল্যাটফর্ম-নমুনা সংগ্রহস্থল থেকে এই প্রকল্পটি ডাউনলোড করতে পারেন।

  1. আপনার সিস্টেমে এপিআই-প্ল্যাটফর্ম-নমুনাগুলি ডাউনলোড বা ক্লোন করুন।
  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 নির্ভরতা ইনস্টল করে।
  3. java-properties/callout ডিরেক্টরিতে cd.
  4. মাভেন চালান:
    mvn clean package
    
  5. আপনি যদি চান, JAR ফাইলটি edge-custom-policy-java-properties.jar java-properties/apiproxy/resources/java তে কপি করা হয়েছে তা যাচাই করুন। এটি JAR ফাইলগুলির জন্য প্রয়োজনীয় অবস্থান যা আপনি একটি প্রক্সি দিয়ে স্থাপন করতে চান৷

javac দিয়ে কম্পাইল করুন (ঐচ্ছিক)

আপনি যদি কোড কম্পাইল করতে javac ব্যবহার করতে চান, তাহলে আপনি নিম্নলিখিত ( java-properties ডিরেক্টরি থেকে) অনুরূপ কিছু করতে পারেন। java-properties/lib ডিরেক্টরিতে আপনার জন্য প্রয়োজনীয় JAR ফাইলগুলি সরবরাহ করা হয়েছে।

  1. cd থেকে 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. Apiproxy/resources/java ডিরেক্টরিতে JAR ফাইলটি অনুলিপি করুন। এটি 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 ব্যবস্থাপনা কল করতে যে ডোমেন ব্যবহার করেন। উদাহরণস্বরূপ, এজ ক্লাউডের জন্য, ডোমেনটি হল https://api.enterprise.apigee.com ; যাইহোক, আপনি যদি এজ প্রাইভেট ক্লাউড ব্যবহার করেন তবে আপনার ডোমেন ভিন্ন হতে পারে।
  3. setenv.sh ফাইলটি সংরক্ষণ করুন।
  4. ডিপ্লোয় স্ক্রিপ্ট চালান:
    ./deploy.sh
    
  5. মোতায়েন সফল হলে, ইনভোক স্ক্রিপ্টটি চালান:
    ./invoke.sh
    

    ইনভোক স্ক্রিপ্ট একটি সিআরএল কমান্ডকে কল করে যা এইরকম দেখায়:

    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"));