RESTful APIs (Representational State Transfer) বর্তমানে ওয়েব সার্ভিসের জন্য একটি জনপ্রিয় আর্কিটেকচার স্টাইল। এটি HTTP প্রটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করে। JSON (JavaScript Object Notation) হল এমন একটি ডেটা ফরম্যাট যা RESTful APIs-এর মধ্যে ডেটা এক্সচেঞ্জের জন্য ব্যাপকভাবে ব্যবহৃত হয়।
এই প্রক্রিয়াটি সহজ এবং কার্যকরী হতে পারে যদি আপনি Java ব্যবহার করে RESTful API তৈরি এবং ব্যবহার করতে চান। এই উদাহরণে, আমরা দেখাব কিভাবে JSON এবং RESTful API ইন্টিগ্রেট করা যায় Java প্রযুক্তিতে।
RESTful API হল একটি ওয়েব API যা HTTP প্রটোকল ব্যবহার করে, এবং এর মধ্যে GET, POST, PUT, DELETE ইত্যাদি HTTP মেথডগুলোর মাধ্যমে রিসোর্স পরিচালনা করা হয়। সাধারণত JSON বা XML ফরম্যাটে ডেটা এক্সচেঞ্জ হয়।
RESTful API ডেটা প্রদান করতে সাধারণত JSON ব্যবহার করা হয় কারণ এটি হালকা, দ্রুত পার্স করা যায় এবং মানুষের পঠনযোগ্য।
Java-তে RESTful API তৈরি করতে আপনি JAX-RS (Java API for RESTful Web Services) ব্যবহার করতে পারেন, অথবা Spring Boot ব্যবহার করতে পারেন, যা RESTful API তৈরি করতে আরও সহজ।
এখানে, আমরা JAX-RS লাইব্রেরি ব্যবহার করব।
Maven ডিপেনডেন্সি (JAX-RS):
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.35</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.35</version>
</dependency>
এখন আমরা একটি RESTful API সার্ভিস তৈরি করব যা JSON ডেটা গ্রহণ করবে এবং পাঠাবে। এই API ব্যবহারকারীর নাম এবং বয়স গ্রহণ করবে এবং একটি গ্রীটিং মেসেজ পাঠাবে।
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.fasterxml.jackson.databind.ObjectMapper;
@Path("/greet")
public class GreetingService {
@GET
@Path("/hello")
@Produces(MediaType.APPLICATION_JSON)
public Response getGreeting(@QueryParam("name") String name, @QueryParam("age") int age) {
// Create a simple greeting message
String greetingMessage = "Hello " + name + ", you are " + age + " years old!";
// Create JSON object
String jsonResponse = "{\"greeting\":\"" + greetingMessage + "\"}";
// Return the response with JSON payload
return Response.status(200).entity(jsonResponse).build();
}
}
Explanation:
@Path("/greet")
: এটি API এর বেস পাথ।@GET
: HTTP GET মেথড ব্যবহার করা হচ্ছে।@Produces(MediaType.APPLICATION_JSON)
: API JSON রেসপন্স প্রদান করবে।@QueryParam
: এটি URL প্যারামিটার হিসেবে name
এবং age
গ্রহণ করবে।আপনি এই API সার্ভিসটি Jersey লাইব্রেরি ব্যবহার করে চালাতে পারেন। একটি web.xml
ফাইল অথবা Application
ক্লাস দিয়ে সার্ভার কনফিগার করতে হবে।
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/api")
public class MyApplication extends Application {
// This class can be left empty for this example
}
এখন আপনি সার্ভার চালু করলে, API পাথ /api/greet/hello
তে পাওয়া যাবে।
এখন, আমরা ক্লায়েন্ট সাইডে AJAX ব্যবহার করে এই RESTful API কে কল করব এবং JSON রেসপন্স পাব। AJAX কল করার জন্য JavaScript ব্যবহার করা হবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AJAX with JSON Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h2>Get Greeting from API</h2>
<label for="name">Enter Name:</label>
<input type="text" id="name" name="name">
<label for="age">Enter Age:</label>
<input type="number" id="age" name="age">
<button onclick="getGreeting()">Get Greeting</button>
<div id="response"></div>
<script>
function getGreeting() {
var name = document.getElementById("name").value;
var age = document.getElementById("age").value;
$.ajax({
url: "http://localhost:8080/api/greet/hello",
type: "GET",
data: { name: name, age: age },
dataType: "json", // Expecting JSON response
success: function(response) {
// Display the greeting message
document.getElementById("response").innerHTML = response.greeting;
},
error: function(xhr, status, error) {
console.error("Error: " + error);
}
});
}
</script>
</body>
</html>
Explanation:
GET
রিকোয়েস্ট পাঠাচ্ছি এবং name ও age প্যারামিটার পাঠাচ্ছি URL তে।response.greeting
প্রিন্ট করবে।এই উদাহরণে, JSON এবং RESTful API একত্রে ব্যবহারের মাধ্যমে ওয়েব সার্ভিস তৈরি এবং JSON ডেটা এক্সচেঞ্জ করা হয়েছে। আমরা দেখেছি কিভাবে Java দিয়ে একটি RESTful API তৈরি করা যায় এবং AJAX ব্যবহার করে JavaScript দিয়ে সেই API থেকে JSON রেসপন্স নেওয়া যায়। এই ধরনের ইন্টিগ্রেশন আধুনিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে খুবই কার্যকরী এবং শক্তিশালী।
REST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল যা ওয়েব সার্ভিস ডিজাইন করার জন্য ব্যবহৃত হয়। RESTful API (Application Programming Interface) একটি প্রোটোকল যা HTTP ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা এক্সচেঞ্জ করতে সাহায্য করে। JSON (JavaScript Object Notation) হল একটি লাইটওয়েট ডেটা ফরম্যাট যা সাধারণত REST API তে ব্যবহৃত হয় ডেটা আদান-প্রদান করতে।
REST API তে JSON ব্যবহার করার জন্য সাধারণত HTTP পদ্ধতিগুলি (GET, POST, PUT, DELETE) ব্যবহার করা হয় এবং JSON ডেটা হিসেবে ডেটা আদান-প্রদান করা হয়। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে REST API তে JSON ফরম্যাটে ডেটা পাঠানো এবং গ্রহণ করা হয়।
GET রিকোয়েস্ট সাধারণত সার্ভার থেকে ডেটা এক্সট্র্যাক্ট করার জন্য ব্যবহৃত হয়। এখানে JSON ফরম্যাটে ডেটা ফেরত আসে।
ক্লায়েন্ট সাইড (JavaScript):
fetch('https://api.example.com/users')
.then(response => response.json()) // JSON ডেটা পার্স করা
.then(data => console.log(data)) // JSON ডেটা লগ করা
.catch(error => console.error('Error:', error));
এখানে, fetch
ফাংশন ব্যবহার করে ক্লায়েন্ট সার্ভার থেকে GET রিকোয়েস্ট পাঠাচ্ছে এবং JSON ডেটা রেসপন্স হিসেবে পাচ্ছে।
সার্ভার সাইড (Node.js উদাহরণ):
const express = require('express');
const app = express();
// GET রিকোয়েস্ট হ্যান্ডলার
app.get('/users', (req, res) => {
const users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Smith' }
];
// JSON ফরম্যাটে রেসপন্স পাঠানো
res.json(users);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
এখানে, সার্ভার একটি JSON Array রেসপন্স পাঠাচ্ছে, যা ক্লায়েন্ট সাইডে প্রক্রিয়া করা হচ্ছে।
POST রিকোয়েস্ট ব্যবহার করে ক্লায়েন্ট সার্ভারে ডেটা পাঠাতে পারে। এই ডেটা সাধারণত JSON ফরম্যাটে পাঠানো হয়।
ক্লায়েন্ট সাইড (JavaScript):
const user = {
name: 'John Doe',
age: 30,
city: 'New York'
};
fetch('https://api.example.com/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json' // JSON ডেটার টাইপ নির্ধারণ
},
body: JSON.stringify(user) // JSON ডেটা পাঠানো
})
.then(response => response.json()) // রেসপন্স JSON ফরম্যাটে পাওয়া
.then(data => console.log('Success:', data))
.catch(error => console.error('Error:', error));
এখানে, JSON.stringify()
ব্যবহার করে JavaScript অবজেক্টটিকে JSON স্ট্রিং এ রূপান্তরিত করা হয়েছে এবং সেটি POST রিকোয়েস্টের মাধ্যমে সার্ভারে পাঠানো হয়েছে।
সার্ভার সাইড (Node.js উদাহরণ):
app.post('/users', express.json(), (req, res) => {
const newUser = req.body; // পাঠানো JSON ডেটা
console.log(newUser);
// ডেটা গ্রহণের পর একটি রেসপন্স পাঠানো
res.status(201).json({ message: 'User created successfully', data: newUser });
});
এখানে, সার্ভার POST রিকোয়েস্টের মাধ্যমে আসা JSON ডেটা গ্রহণ করছে এবং একটি সাফল্যের বার্তা সহ রেসপন্স পাঠাচ্ছে।
PUT রিকোয়েস্ট ব্যবহৃত হয় কোনও অবজেক্টের সম্পূর্ণ ডেটা আপডেট করার জন্য।
ক্লায়েন্ট সাইড (JavaScript):
const updatedUser = {
name: 'John Doe',
age: 31,
city: 'Los Angeles'
};
fetch('https://api.example.com/users/1', {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(updatedUser)
})
.then(response => response.json())
.then(data => console.log('User updated:', data))
.catch(error => console.error('Error:', error));
সার্ভার সাইড (Node.js উদাহরণ):
app.put('/users/:id', express.json(), (req, res) => {
const userId = req.params.id;
const updatedData = req.body; // পাঠানো JSON ডেটা
console.log(`Updating user ${userId} with data:`, updatedData);
// আপডেট ডেটা পাঠানো
res.json({ message: `User ${userId} updated successfully`, data: updatedData });
});
এখানে, PUT রিকোয়েস্টের মাধ্যমে সার্ভারে JSON ডেটা আপডেট করা হচ্ছে।
DELETE রিকোয়েস্ট ব্যবহার করে সার্ভারে থেকে কোনও ডেটা মুছে ফেলা হয়। যদিও সাধারণত এতে JSON রেসপন্স ফেরত আসার প্রয়োজন পড়ে না, তবে সার্ভার মুছে ফেলা ডেটার সম্পর্কিত একটি বার্তা পাঠাতে পারে।
ক্লায়েন্ট সাইড (JavaScript):
fetch('https://api.example.com/users/1', {
method: 'DELETE'
})
.then(response => response.json())
.then(data => console.log('User deleted:', data))
.catch(error => console.error('Error:', error));
সার্ভার সাইড (Node.js উদাহরণ):
app.delete('/users/:id', (req, res) => {
const userId = req.params.id;
console.log(`Deleting user with ID: ${userId}`);
// ডেটা মুছে ফেলার পর একটি রেসপন্স পাঠানো
res.json({ message: `User ${userId} deleted successfully` });
});
JSON হল REST API তে ডেটা আদান-প্রদান করার জন্য অত্যন্ত জনপ্রিয় ফরম্যাট। এটি সার্ভার এবং ক্লায়েন্টের মধ্যে তথ্য আদান-প্রদান সহজ করে তোলে, বিশেষ করে ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনগুলিতে। GET, POST, PUT, এবং DELETE HTTP পদ্ধতিগুলি ব্যবহার করে JSON ডেটা সার্ভারে পাঠানো এবং গ্রহণ করা হয়, যা REST API-এর কার্যকারিতা এবং ইন্টারঅপারেবিলিটি নিশ্চিত করে। JSON ডেটা JavaScript সহ অনেক প্রোগ্রামিং ভাষায় ব্যবহারযোগ্য এবং সহজে পাঠযোগ্য, যা REST API এর জন্য একটি আদর্শ ডেটা ফরম্যাট।
JSON (JavaScript Object Notation) হল একটি হালকা, পাঠযোগ্য এবং মানুষের জন্য সহজ ডেটা ফরম্যাট, যা মূলত ওয়েব অ্যাপ্লিকেশন এবং API (Application Programming Interface) এর মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। JSON টোকেন এবং ডেটা এক্সচেঞ্জের জন্য খুবই জনপ্রিয় কারণ এটি দ্রুত এবং কার্যকরী। API রিকোয়েস্ট এবং রেসপন্সে JSON ব্যবহার একটি সাধারণ ও কার্যকরী প্র্যাকটিস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে সোজাসুজি যোগাযোগ নিশ্চিত করে।
API রিকোয়েস্ট এবং রেসপন্সের ক্ষেত্রে JSON ব্যবহারের প্রক্রিয়া সাধারাণত দুইটি ধাপে ঘটে:
API রিকোয়েস্টের মাধ্যমে সার্ভারের কাছে ডেটা পাঠাতে, সাধারণত HTTP POST অথবা HTTP PUT রিকোয়েস্ট ব্যবহার করা হয়। এই রিকোয়েস্টের মধ্যে JSON ডেটা সেগমেন্টে পাঠানো হয়, যা সার্ভারকে প্রয়োজনীয় ডেটা প্রক্রিয়া করতে সহায়তা করে।
ধরা যাক, ক্লায়েন্ট একটি নতুন ব্যবহারকারী তৈরি করার জন্য সার্ভারে JSON ডেটা পাঠাচ্ছে। নিচে একটি POST রিকোয়েস্টের উদাহরণ দেওয়া হলো।
const fetch = require('node-fetch');
const url = 'https://api.example.com/users';
const data = {
name: 'John Doe',
email: 'john.doe@example.com',
password: 'password123'
};
// POST রিকোয়েস্ট পাঠানো
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json' // JSON ডেটা পাঠানোর জন্য
},
body: JSON.stringify(data) // ডেটাকে JSON ফরম্যাটে স্ট্রিং এ রূপান্তরিত করা
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
এখানে:
Content-Type: application/json
হেডার দ্বারা সার্ভারকে জানানো হচ্ছে যে, পাঠানো ডেটা JSON ফরম্যাটে রয়েছে।body: JSON.stringify(data)
ডেটাকে JSON স্ট্রিং ফরম্যাটে রূপান্তরিত করে রিকোয়েস্ট বডিতে পাঠানো হচ্ছে।API রেসপন্সের মাধ্যমে সার্ভার ক্লায়েন্টকে JSON ডেটা পাঠায়। এটি সাধারণত GET রিকোয়েস্টের মাধ্যমে করা হয়, যেখানে সার্ভার ক্লায়েন্টকে ডেটার জন্য JSON রেসপন্স ফেরত পাঠায়।
নিচে একটি GET রিকোয়েস্টের মাধ্যমে সার্ভার থেকে JSON রেসপন্স পাওয়ার উদাহরণ দেওয়া হলো:
const fetch = require('node-fetch');
const url = 'https://api.example.com/users/123';
// GET রিকোয়েস্ট পাঠানো
fetch(url)
.then(response => response.json()) // রেসপন্স JSON পার্স করা
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
এখানে:
response.json()
ফাংশন ব্যবহার করা হচ্ছে, যা সার্ভার থেকে পাওয়া JSON ডেটা পার্স করে JavaScript অবজেক্টে রূপান্তরিত করে।সার্ভার রেসপন্স উদাহরণ:
{
"id": 123,
"name": "John Doe",
"email": "john.doe@example.com",
"status": "active"
}
এখানে, সার্ভার থেকে JSON ফরম্যাটে ব্যবহারকারীর তথ্য রিটার্ন করা হচ্ছে, যা ক্লায়েন্ট সাইডে প্রক্রিয়া করা হবে।
এটি গুরুত্বপূর্ণ যে, সার্ভার রেসপন্সে যদি কোনো ত্রুটি ঘটে, তবে JSON ফরম্যাটে উপযুক্ত ত্রুটি বার্তা পাঠানো উচিত, যা ক্লায়েন্ট সাইডে সহজে পার্স করা যেতে পারে।
{
"error": true,
"message": "User not found"
}
এখানে:
error
: Boolean ভ্যালু, যা জানায় যে রিকোয়েস্টটি সফল হয়নি।message
: ত্রুটি বার্তা যা সমস্যার সমাধান বা কারণ জানায়।JSON ওয়েব অ্যাপ্লিকেশন এবং API-তে ডেটা এক্সচেঞ্জের জন্য একটি জনপ্রিয় ফরম্যাট। API রিকোয়েস্টে JSON ডেটা পাঠাতে POST, PUT, বা PATCH মেথড ব্যবহার করা হয়, এবং API রেসপন্সে সার্ভার JSON ডেটা ফেরত পাঠায়। JSON এর মাধ্যমে HTTP রিকোয়েস্ট এবং রেসপন্সের মধ্যে ডেটা নিরাপদ এবং দ্রুত আদান-প্রদান করা সম্ভব। JSON এর সুবিধাগুলির মধ্যে রয়েছে এর সহজতা, কমপ্যাক্টনেস, এবং স্ট্যান্ডার্ড ফরম্যাট যা বিভিন্ন প্রোগ্রামিং ভাষায় সমর্থিত।
RESTful Web Services হল একটি ওয়েব সার্ভিস আর্কিটেকচার, যা Representational State Transfer (REST) প্রিন্সিপাল অনুসরণ করে। এটি হালকা এবং স্কেলেবল যোগাযোগের জন্য ব্যবহৃত হয় এবং সাধারাণত HTTP প্রোটোকল ব্যবহার করে। JSON (JavaScript Object Notation) একটি ডেটা ফরম্যাট, যা ওয়েব সার্ভিসের মাধ্যমে ডেটা ট্রান্সফার করতে ব্যবহৃত হয়। RESTful Web Services এবং JSON একসাথে ব্যাপকভাবে ব্যবহৃত হয়, কারণ JSON একটি সহজ, কমপ্যাক্ট এবং পড়তে সহজ ফরম্যাট যা ডেটা এক্সচেঞ্জের জন্য আদর্শ।
RESTful Web Services এবং JSON একে অপরের সাথে সংযুক্ত থাকে, কারণ JSON সাধারণত REST API এর মাধ্যমে client-server communication এর জন্য ডেটা এক্সচেঞ্জ করতে ব্যবহৃত হয়। RESTful API এর মাধ্যমে HTTP রিকোয়েস্ট এবং রেসপন্স ব্যবস্থাপনা করা হয়, যেখানে JSON ফরম্যাট ডেটার মূল অংশ হিসেবে কাজ করে।
RESTful Web Services হল ওয়েব অ্যাপ্লিকেশনগুলির মধ্যে ডেটা এক্সচেঞ্জ করার জন্য ব্যবহৃত একটি স্টাইল বা আর্কিটেকচার। RESTful API সাধারণত HTTP Methods (GET, POST, PUT, DELETE) এর মাধ্যমে ওয়েব রিকোয়েস্ট এবং রেসপন্স পরিচালনা করে।
RESTful Web Services এর মূল বৈশিষ্ট্যগুলো:
JSON (JavaScript Object Notation) একটি লাইটওয়েট ডেটা ফরম্যাট যা সহজেই HTTP মাধ্যমে ট্রান্সফার করা যায়। RESTful Web Services এ JSON ব্যবহার করা হয় request body এবং response body হিসেবে।
RESTful API ক্লায়েন্ট JSON ডেটা পাঠানোর জন্য POST বা PUT HTTP মেথড ব্যবহার করতে পারে। ক্লায়েন্ট JSON ডেটাকে request body তে পাঠায়, এবং সার্ভার এই JSON ডেটা প্রক্রিয়া করে এবং প্রয়োজনীয় ডেটা প্রদান করে।
Client-Side Request (POST):
POST /users HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john.doe@example.com",
"role": "admin"
}
এখানে, ক্লায়েন্ট একটি JSON অবজেক্ট পাঠাচ্ছে যা ব্যবহারকারীর নাম, ইমেইল এবং রোল সম্পর্কিত তথ্য ধারণ করে।
RESTful API সার্ভার JSON ডেটা রিটার্ন করে যেটি ক্লায়েন্ট বা ব্রাউজার দ্বারা প্রক্রিয়া করা যেতে পারে। সার্ভার JSON ডেটা টেক্সট হিসেবে রিটার্ন করে, এবং ক্লায়েন্ট JSON অবজেক্ট হিসেবে এটিকে প্যার্স করে ব্যবহার করতে পারে।
Server-Side Response (GET):
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "12345",
"name": "John Doe",
"email": "john.doe@example.com",
"role": "admin"
}
এখানে, সার্ভার একটি JSON অবজেক্ট পাঠাচ্ছে যা ব্যবহারকারীর তথ্য ধারণ করে, এবং 200 OK স্ট্যাটাস কোড জানাচ্ছে যে রিকোয়েস্ট সফলভাবে প্রক্রিয়া করা হয়েছে।
Spring Boot বা JAX-RS (Java API for RESTful Web Services) এর মতো ফ্রেমওয়ার্ক ব্যবহার করে RESTful Web Services তৈরি করতে JSON ফরম্যাটে ডেটা এক্সচেঞ্জ করা হয়। নিচে Spring Boot এর মাধ্যমে JSON এ RESTful Web Services তৈরি করার একটি উদাহরণ দেয়া হল।
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
class UserController {
@GetMapping("/users")
public User getUser(@RequestParam(value = "name", defaultValue = "Guest") String name) {
return new User(name, "john.doe@example.com", "admin");
}
}
class User {
private String name;
private String email;
private String role;
public User(String name, String email, String role) {
this.name = name;
this.email = email;
this.role = role;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public String getRole() {
return role;
}
}
ব্যাখ্যা:
@RestController
: Spring Boot-এ এটি HTTP রিকোয়েস্টকে JSON রেসপন্স হিসেবে কনভার্ট করে।GET /users?name=John HTTP/1.1
Host: localhost:8080
Response:
{
"name": "John",
"email": "john.doe@example.com",
"role": "admin"
}
এখানে, সার্ভার User
অবজেক্টের একটি JSON ফরম্যাট রিটার্ন করছে।
RESTful Web Services এবং JSON একে অপরের সাথে গভীরভাবে সংযুক্ত থাকে। JSON ডেটা ফরম্যাটটি RESTful API এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয়। RESTful API HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ করতে পারে, এবং JSON এর মাধ্যমে ডেটা ট্রান্সফার করা হয় যা দ্রুত, হালকা এবং সহজে ব্যবহারযোগ্য। Spring Boot বা JAX-RS-এর মতো ফ্রেমওয়ার্কের মাধ্যমে RESTful API এবং JSON ইন্টিগ্রেশন খুব সহজে বাস্তবায়ন করা যায়।
এই গাইডে, আমরা একটি REST API তৈরি করব যেখানে JSON রেসপন্স থাকবে। আমরা Spring Boot ফ্রেমওয়ার্ক ব্যবহার করে এটি তৈরি করব। Spring Boot হল একটি জনপ্রিয় Java ফ্রেমওয়ার্ক যা দ্রুত এবং সহজে ওয়েব অ্যাপ্লিকেশন ও RESTful API তৈরি করতে সাহায্য করে।
প্রথমে, Spring Initializr ব্যবহার করে একটি Spring Boot প্রজেক্ট তৈরি করুন:
com.example
restapi
restapi
A simple REST API with JSON response
com.example.restapi
এটি একটি ZIP ফাইল ডাউনলোড করবে। ফাইলটি আনজিপ করুন এবং আপনার পছন্দের IDE তে খুলুন।
এখন আমরা একটি REST Controller তৈরি করব যা JSON রেসপন্স প্রদান করবে। একটি সাধারণ GET রিকোয়েস্ট হ্যান্ডলিং এর মাধ্যমে JSON রেসপন্স পাঠানো হবে।
UserController.java
ফাইল তৈরি করুন:
package com.example.restapi.controller;
import com.example.restapi.model.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RestController
public class UserController {
// GET endpoint to return list of users
@GetMapping("/users")
public List<User> getUsers() {
User user1 = new User(1, "John Doe", "john.doe@example.com");
User user2 = new User(2, "Jane Doe", "jane.doe@example.com");
return Arrays.asList(user1, user2);
}
}
এখানে, /users
রুটে একটি GET রিকোয়েস্ট করা হলে, এটি একটি List রিটার্ন করবে।
এখন আমাদের User নামক একটি ক্লাস তৈরি করতে হবে যা id
, name
, এবং email
ধারণ করবে। এই ক্লাসটিকে Model Class হিসেবে ব্যবহার করা হবে।
User.java
ফাইল তৈরি করুন:
package com.example.restapi.model;
public class User {
private int id;
private String name;
private String email;
// Constructor
public User(int id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
এখানে:
id
, name
, এবং email
।এখন আমাদের Spring Boot অ্যাপ্লিকেশন চালু করতে হবে। RestapiApplication.java
ক্লাসটি সাধারণত Spring Initializr থেকে তৈরি হয়।
package com.example.restapi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class RestapiApplication {
public static void main(String[] args) {
SpringApplication.run(RestapiApplication.class, args);
}
}
এখন, আপনার অ্যাপ্লিকেশনটি রান করানোর জন্য RestapiApplication.java
ক্লাসে main()
মেথড রান করুন। অ্যাপ্লিকেশনটি localhost:8080 তে চলে আসবে।
এখন আমাদের GET রিকোয়েস্ট পাঠিয়ে JSON রেসপন্স পরীক্ষা করা যাক। এটি করার জন্য, আপনি আপনার ব্রাউজার বা Postman ব্যবহার করতে পারেন।
GET http://localhost:8080/users
[
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
},
{
"id": 2,
"name": "Jane Doe",
"email": "jane.doe@example.com"
}
]
এখানে, /users
এ GET রিকোয়েস্ট পাঠালে আপনি JSON ফরম্যাটে ২টি ব্যবহারকারীর ডেটা পাবেন।
এটি ছিল Spring Boot ব্যবহার করে একটি REST API তৈরি করার প্রক্রিয়া, যা JSON রেসপন্স প্রদান করে। এই উদাহরণে আমরা:
GET
রিকোয়েস্টে JSON রেসপন্স প্রদান করে।User
অবজেক্টের জন্য ডেটা ধারণ করে।এই প্রক্রিয়াটি REST API তৈরি করতে এবং JSON ডেটা পাঠানোর জন্য খুবই কার্যকরী এবং এটি ওয়েব ডেভেলপমেন্টের জন্য একটি গুরুত্বপূর্ণ স্কিল।
Read more