REST API এবং Web Services থেকে ডেটা লোড করা

Highcharts এবং Third-party API Integration - জিডব্লিউটি হাই চার্ট (GWT High Charts) - Web Development

775

Highcharts একটি জনপ্রিয় JavaScript লাইব্রেরি, যা ইন্টারঅ্যাকটিভ এবং কাস্টমাইজেবল চার্ট তৈরি করার জন্য ব্যবহৃত হয়। GWT (Google Web Toolkit) ব্যবহার করে আপনি REST API এবং Web Services থেকে ডেটা লোড করে Highcharts এর মাধ্যমে ডেটা ভিজুয়ালাইজেশন করতে পারেন। এই প্রক্রিয়া সঠিকভাবে পরিচালনা করতে আপনাকে API থেকে ডেটা ফেচ করার জন্য GWT HTTP ক্লায়েন্টের সাথে Highcharts ব্যবহার করতে হবে।

নিচে REST API এবং Web Services থেকে ডেটা লোড করার প্রক্রিয়া আলোচনা করা হলো:


১. GWT এর মাধ্যমে REST API থেকে ডেটা লোড করা

GWT এ HTTP ক্লায়েন্ট ব্যবহার করে আপনি RESTful API থেকে ডেটা ফেচ করতে পারেন। এই ডেটা পরে Highcharts ব্যবহার করে চার্টে প্রদর্শন করা যাবে।

উদাহরণ: GWT দিয়ে REST API থেকে ডেটা ফেচ করা এবং Highcharts এ লোড করা

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.http.client.*;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.core.client.JsArray;

public class ApiDataExample implements EntryPoint {

    @Override
    public void onModuleLoad() {
        fetchDataFromApi();
    }

    private void fetchDataFromApi() {
        String url = "https://api.example.com/data"; // API URL
        
        // Sending a GET request to the API
        RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
        
        builder.setCallback(new RequestCallback() {
            @Override
            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == 200) {
                    // Parse the response data (assuming JSON format)
                    JsArray data = parseJson(response.getText());
                    
                    // Update the Highcharts chart with the fetched data
                    updateChartWithNewData(data);
                }
            }

            @Override
            public void onError(Request request, Throwable exception) {
                consoleLog("Error fetching data from API.");
            }
        });

        // Send the request
        try {
            builder.send();
        } catch (RequestException e) {
            consoleLog("Request exception: " + e.getMessage());
        }
    }

    private native JsArray parseJson(String json) /*-{
        return JSON.parse(json);
    }-*/;

    private void updateChartWithNewData(JsArray data) {
        // JavaScript code to update the Highcharts chart
        Highcharts.chart('container', {
            chart: {
                type: 'line'
            },
            title: {
                text: 'API Fetched Data'
            },
            series: [{
                name: 'API Data',
                data: data  // Update with the new data from API
            }]
        });
    }

    private native void consoleLog(String msg) /*-{
        console.log(msg);
    }-*/;
}

ব্যাখ্যা:

  • RequestBuilder: GWT এর মাধ্যমে HTTP রিকোয়েস্ট পাঠানোর জন্য RequestBuilder ব্যবহার করা হয়েছে।
  • onResponseReceived: API থেকে সঠিক ডেটা পাওয়ার পর, JSON ডেটা পার্স করা হয়েছে এবং Highcharts এ আপডেট করা হয়েছে।
  • parseJson: JSON ডেটাকে JavaScript Array তে রূপান্তর করা হয়েছে যাতে তা Highcharts এ ব্যবহৃত হতে পারে।

২. Web Services থেকে ডেটা লোড করা

Web Services (SOAP অথবা REST) থেকে ডেটা লোড করার জন্য GWT ব্যবহার করতে পারেন। যদি আপনার Web Service JSON অথবা XML ফরম্যাটে ডেটা পাঠায়, তাহলে আপনি GWT এর HTTP ক্লায়েন্ট দিয়ে সেই ডেটা গ্রহণ করতে পারেন এবং তারপর Highcharts দিয়ে তা ভিজুয়ালাইজ করতে পারবেন।

SOAP Web Service থেকে ডেটা লোড করা

SOAP Web Service এর মাধ্যমে ডেটা লোড করতে হলে আপনাকে XML ফরম্যাটে ডেটা গ্রহণ করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে SOAP Web Service থেকে JSON ডেটা গ্রহণ করা হয়েছে এবং তা Highcharts এ আপডেট করা হয়েছে।

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.http.client.*;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.core.client.JsArray;

public class SoapWebServiceExample implements EntryPoint {

    @Override
    public void onModuleLoad() {
        fetchDataFromSoapService();
    }

    private void fetchDataFromSoapService() {
        String url = "https://api.example.com/soap"; // SOAP Web Service URL
        
        // Sending a POST request to the SOAP Web Service
        RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
        builder.setHeader("Content-Type", "text/xml");
        builder.setRequestData("SOAP Request Data Here");

        builder.setCallback(new RequestCallback() {
            @Override
            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == 200) {
                    // Parse the SOAP XML response (using JSNI or XML parser)
                    JsArray data = parseJson(response.getText());
                    
                    // Update the Highcharts chart with the fetched data
                    updateChartWithNewData(data);
                }
            }

            @Override
            public void onError(Request request, Throwable exception) {
                consoleLog("Error fetching data from SOAP Web Service.");
            }
        });

        // Send the request
        try {
            builder.send();
        } catch (RequestException e) {
            consoleLog("Request exception: " + e.getMessage());
        }
    }

    private native JsArray parseJson(String json) /*-{
        return JSON.parse(json);
    }-*/;

    private void updateChartWithNewData(JsArray data) {
        // JavaScript code to update the Highcharts chart
        Highcharts.chart('container', {
            chart: {
                type: 'bar'
            },
            title: {
                text: 'SOAP Web Service Data'
            },
            series: [{
                name: 'Web Service Data',
                data: data  // Update with the new data from SOAP
            }]
        });
    }

    private native void consoleLog(String msg) /*-{
        console.log(msg);
    }-*/;
}

ব্যাখ্যা:

  • SOAP Web Service থেকে ডেটা ফেচ: GWT ব্যবহার করে SOAP Web Service থেকে POST রিকোয়েস্ট পাঠানো হচ্ছে।
  • parseJson: XML থেকে JSON ডেটা পার্স করার জন্য JSNI অথবা XML পার্সার ব্যবহার করতে হবে।
  • updateChartWithNewData: SOAP থেকে পাওয়া ডেটাকে Highcharts এ লোড করা হচ্ছে।

৩. ডেটা ফরম্যাট কাস্টমাইজেশন

আপনি যেই Web Service বা API থেকে ডেটা গ্রহণ করবেন, সেই ডেটার ফরম্যাট (JSON, XML ইত্যাদি) এর উপর ভিত্তি করে আপনাকে ডেটা কাস্টমাইজ এবং পার্স করতে হবে। Highcharts কেবলমাত্র একটি নির্দিষ্ট ফরম্যাটে ডেটা গ্রহণ করতে পারে, তাই আপনি API থেকে প্রাপ্ত ডেটা অনুযায়ী সেটি ফরম্যাট করতে পারেন।

JSON ফরম্যাট:

[
    { "name": "January", "value": 10 },
    { "name": "February", "value": 20 },
    { "name": "March", "value": 30 }
]

ডেটা লোডের জন্য Highcharts কনফিগারেশন:

Highcharts.chart('container', {
    chart: {
        type: 'line'
    },
    title: {
        text: 'Monthly Sales'
    },
    series: [{
        name: 'Sales Data',
        data: [10, 20, 30]  // JSON থেকে ফেচ করা ডেটা
    }]
});

সারাংশ

GWT এর মাধ্যমে REST API এবং Web Services থেকে ডেটা লোড করা খুবই সহজ এবং এটি Highcharts এর সাথে সঠিকভাবে ইন্টিগ্রেট করা যেতে পারে। GWT এর RequestBuilder ব্যবহার করে আপনি API থেকে ডেটা ফেচ করতে পারেন এবং সেই ডেটা Highcharts দিয়ে ভিজুয়ালাইজ করতে পারেন। JSON বা XML ডেটা পার্সিংয়ের মাধ্যমে আপনি আপনার চার্টে প্রয়োজনীয় ডেটা প্রদর্শন করতে পারবেন।


Content added By
Promotion

Are you sure to start over?

Loading...