জাভা কলআউট দিয়ে প্রতিক্রিয়াটিকে বড় হাতের অক্ষরে রূপান্তর করুন

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

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

এই কুকবুক নমুনা দেখায় কিভাবে একটি সাধারণ JavaCallout নীতি তৈরি করতে হয় যা একটি প্রক্সি প্রবাহের প্রসঙ্গে কাস্টম জাভা কোড কার্যকর করে।

নমুনা কোড কি করে?

এই নমুনার API প্রক্সি একটি লক্ষ্য পরিষেবাকে কল করে যা একটি সাধারণ JSON প্রতিক্রিয়া প্রদান করে। জাভা কলআউট নীতি লক্ষ্য প্রতিক্রিয়া প্রবাহের উপর স্থাপন করা হয়। জাভা কোড হেডার এবং প্রতিক্রিয়ার বিষয়বস্তুকে বড় হাতের অক্ষরে রূপান্তর করে। এটা একটা সহজ উদাহরণ; যাইহোক, এটি এজ-এ একটি API প্রক্সির প্রেক্ষাপটে কাস্টম জাভা কোড কীভাবে কাজ করবে তা ব্যাখ্যা করে।

নমুনা চেষ্টা করুন

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

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

  1. আপনার সিস্টেমে এপিআই-প্ল্যাটফর্ম-নমুনাগুলি ডাউনলোড বা ক্লোন করুন।
  2. আপনার পছন্দের একটি টার্মিনাল বা কোড এডিটরে, api-platform-samples/doc-samples/java-cookbook প্রকল্পে যান।

Maven দিয়ে আপনার কোড কম্পাইল করুন

প্রকল্পটি সেট আপ করা হয়েছে যাতে আপনি Maven এর সাথে কম্পাইল করতে পারেন। আপনি যদি javac ব্যবহার করতে চান, আমরা Maven উদাহরণ অনুসরণ করার পাশাপাশি একটি উদাহরণও অন্তর্ভুক্ত করব।

  1. আপনি Maven ইনস্টল করেছেন তা নিশ্চিত করুন:
    mvn -version
    
  2. স্ক্রিপ্ট java-cookbook/buildsetup.sh চালান। এই স্ক্রিপ্টটি আপনার স্থানীয় মাভেন রেপোতে প্রয়োজনীয় JAR নির্ভরতা ইনস্টল করে।
  3. java-cookbool/callout ডিরেক্টরিতে cd.
  4. মাভেন চালান:
    mvn clean package
    
  5. আপনি যদি চান, JAR ফাইলটি edge-custom-policy-java-cookbook.jar java-cookbook/apiproxy/resources/java এ কপি করা হয়েছে তা যাচাই করুন। এটি JAR ফাইলগুলির জন্য প্রয়োজনীয় অবস্থান যা আপনি একটি প্রক্সি দিয়ে স্থাপন করতে চান৷

javac দিয়ে কম্পাইল করুন

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

  1. cd to api-platform-samples/doc-samples/java-cookbook .
  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/ResponseUppercase.java
    
  4. Apiproxy/resources/java ডিরেক্টরিতে JAR ফাইলটি অনুলিপি করুন। এটি JAR ফাইলগুলির জন্য প্রয়োজনীয় অবস্থান যা আপনি একটি প্রক্সি দিয়ে স্থাপন করতে চান৷

    cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
    

প্রক্সি স্থাপন করুন এবং কল করুন

./java-cookbook ডিরেক্টরিতে একটি ডিপ্লোয় স্ক্রিপ্ট দেওয়া আছে। কিন্তু আপনি এটি চালানোর আগে, আপনাকে একটি দ্রুত সেটআপ করতে হবে।

  1. cd to api-platform-samples/doc-samples/java-cookbook
  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-cookbook/json
    

প্রতিক্রিয়া এই মত কিছু দেখায়:

< HTTP/1.1 200 OK
< Date: Tue, 09 May 2017 20:31:08 GMT
< Content-Type: APPLICATION/JSON; CHARSET=UTF-8
< Content-Length: 68
< Connection: keep-alive
< Access-Control-Allow-Origin: *
< ETag: W/"44-RA5ERT/MMLIK54NVBWBSZG"
< X-Powered-By: APIGEE
< Server: Apigee Router
<
* Curl_http_done: called premature == 0
* Connection #0 to host willwitman-test.apigee.net left intact
{"FIRSTNAME":"JOHN","LASTNAME":"DOE","CITY":"SAN JOSE","STATE":"CA"}

প্রক্সি প্রবাহ

এটি প্রক্সির প্রবাহ দেখানো ট্রেস টুলের একটি শট:

প্রক্সি কাঠামো

এটি প্রক্সির গঠন। মনে রাখবেন যে এটি apiproxy/resources/java ডিরেক্টরিতে একটি JAR ফাইল অন্তর্ভুক্ত করে। JAR প্রয়োজন। আমরা নমুনার জন্য এটি প্রদান করি, কিন্তু আপনি যদি কাস্টম কাজ করছেন, তাহলে আপনাকে এটি নিজেই তৈরি করতে হবে এবং এই অবস্থানে এটি অনুলিপি করতে হবে। একটি জাভা কলআউট কম্পাইল এবং স্থাপন করার বিষয়ে নির্দেশনার জন্য, দেখুন কিভাবে একটি জাভা কলআউট তৈরি করতে হয়

java-cookbook

    apiproxy
        java-cookbook.xml
    policies
        responseUppercase.xml
    proxies
        default.xml
    resources
        java
            ResponseUppercase.jar
    targets
        default.xml

জাভা কোড সম্পর্কে

জাভা কলআউট নীতি নিম্নলিখিত জাভা কোড চালায়, যা প্রতিক্রিয়া শিরোনাম এবং প্রতিক্রিয়া বডিকে বড় হাতের অক্ষরে রূপান্তর করে। উল্লেখ্য যে প্রোগ্রামটি Apigee-নির্দিষ্ট প্যাকেজ ব্যবহার করে। এই প্যাকেজগুলি বস্তু এবং পদ্ধতিগুলি প্রদান করে যা আপনি প্রক্সি প্রবাহের সাথে সরাসরি যোগাযোগ করতে ব্যবহার করতে পারেন। এমন পদ্ধতি বিদ্যমান যা আপনাকে ফ্লো ভেরিয়েবল, হেডার, বার্তা সামগ্রী এবং আরও অনেক কিছু পেতে এবং সেট করতে দেয়।

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.Set; 

public class ResponseUppercase implements Execution{
    public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) {
        try {
            Set headers = messageContext.getMessage().getHeaderNames();
            for (String header : headers) {
                String h = messageContext.getMessage().getHeader(header).toUpperCase();
                messageContext.getMessage().setHeader(header, h);
            }
            String content = messageContext.getMessage().getContent();
            messageContext.getMessage().setContent(content.toUpperCase());
            return ExecutionResult.SUCCESS;
        } catch (Exception e) {
                return ExecutionResult.ABORT;
        }
    }
}

নমুনা প্রক্সি পরীক্ষা করুন

আমরা প্রক্সি খুলতে এবং ফাইলগুলি পরীক্ষা করার জন্য এটি আপনার উপর ছেড়ে দিই। এখানে জাভা কলআউট নীতি। নোট করুন কিভাবে এটি কলআউট এবং JAR ফাইলটি যে শ্রেণীটি চালায় তা উল্লেখ করে। সমস্ত জাভা কলআউট নীতি এই প্যাটার্ন অনুসরণ করে। এছাড়াও Java কলআউট নীতি দেখুন।

<JavaCallout name="responseUppercase">         
    <ClassName>com.apigeesample.ResponseUppercase</ClassName>         
    <ResourceURL>java://ResponseUppercase.jar</ResourceURL> 
</JavaCallout>