Java-তে REST API থেকে JSON ডেটা ফেচ করার জন্য সাধারণত HttpURLConnection বা কোনো HTTP ক্লায়েন্ট লাইব্রেরি ব্যবহার করা হয়। এই প্রক্রিয়ায়, REST API থেকে JSON রেসপন্স প্রাপ্ত হওয়ার পর তা JSONObject বা JSONArray এর মাধ্যমে পার্স করা হয়।
অর্গ.জেসন (Org.Json) লাইব্রেরি ব্যবহার করে REST API থেকে প্রাপ্ত JSON ডেটা ম্যানিপুলেট করা সহজ। এখানে আমরা দেখবো কিভাবে Java-তে একটি REST API কল করা হয় এবং JSON ডেটা ফেচ করা হয় এবং তা JSONObject তে পরিণত করা হয়।
REST API থেকে JSON ডেটা ফেচ করার প্রাথমিক ধাপ
- HTTP রিকোয়েস্ট পাঠানো: Java-তে
HttpURLConnectionব্যবহার করে একটি GET রিকোয়েস্ট পাঠানো হয়। - JSON ডেটা রেসপন্স হিসেবে পাওয়া: API থেকে JSON ডেটা প্রাপ্ত হয়।
- JSON ডেটা পার্স করা: JSON ডেটা
JSONObjectবাJSONArrayএর মাধ্যমে পার্স করা হয়।
উদাহরণ: REST API থেকে JSON ডেটা ফেচ করা
এখানে একটি উদাহরণ দেখানো হচ্ছে যেখানে আমরা একটি পাবলিক API (যেমন JSONPlaceholder) থেকে JSON ডেটা ফেচ করছি।
১. HttpURLConnection ব্যবহার করে REST API কল করা
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class FetchJsonFromApi {
public static void main(String[] args) {
try {
// API URL
String url = "https://jsonplaceholder.typicode.com/users/1";
// HttpURLConnection তৈরি
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestMethod("GET"); // GET রিকোয়েস্ট
// রেসপন্স কোড চেক করা
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) { // 200 OK
// ইনপুট স্ট্রিম থেকে JSON ডেটা পড়া
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// JSON ডেটা পার্স করা
JSONObject jsonResponse = new JSONObject(response.toString());
// JSON ডেটার মান এক্সট্র্যাক্ট করা
System.out.println("User ID: " + jsonResponse.getInt("id"));
System.out.println("User Name: " + jsonResponse.getString("name"));
System.out.println("User Email: " + jsonResponse.getString("email"));
System.out.println("User Address: " + jsonResponse.getJSONObject("address").getString("street"));
} else {
System.out.println("GET request failed");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা
- URL URL("https://jsonplaceholder.typicode.com/users/1")
এটি সেই API URL, যেখানে আমরা ডেটা ফেচ করতে যাচ্ছি। - HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
এখানে,HttpURLConnectionঅবজেক্ট তৈরি করা হচ্ছে যা HTTP GET রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়। - connection.setRequestMethod("GET");
এটি GET রিকোয়েস্ট পাঠানোর জন্য নির্দেশ দেয়। - BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
API থেকে রেসপন্স হিসেবে পাওয়া JSON ডেটা ইনপুট স্ট্রিমের মাধ্যমে পড়ে নেওয়া হয়। - JSONObject jsonResponse = new JSONObject(response.toString());
JSON রেসপন্সকেJSONObjectঅবজেক্টে রূপান্তরিত করা হয়। - jsonResponse.getString("name");
JSON অবজেক্ট থেকে নাম, ইমেইল, আইডি, অ্যাড্রেস ইত্যাদি এক্সট্র্যাক্ট করা হয়।
JSONPlaceholder API উদাহরণ
এই কোডের মাধ্যমে আমরা https://jsonplaceholder.typicode.com/users/1 API থেকে একটি ইউজারের ডেটা ফেচ করছি। API রেসপন্স এমন কিছু হতে পারে:
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
}
}
এখানে, name, id, email, এবং address থেকে ডেটা এক্সট্র্যাক্ট করা হয়েছে।
সারাংশ
এই উদাহরণে, আমরা দেখেছি কিভাবে Java-তে HttpURLConnection ব্যবহার করে একটি REST API থেকে JSON ডেটা ফেচ করা যায় এবং তা JSONObject তে পরিণত করা হয়। একবার JSON ডেটা পার্স করার পর, আপনি JSON এর মধ্যে থাকা বিভিন্ন মান এবং অবজেক্ট সহজেই অ্যাক্সেস করতে পারবেন। এটি আপনাকে REST API থেকে ডেটা ফেচ এবং প্রসেস করার জন্য একটি কার্যকরী পদ্ধতি প্রদান করে।