Spring Boot RESTful Web Service এমন একটি পরিষেবা যা HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। এটি REST (Representational State Transfer) আর্কিটেকচার অনুসরণ করে এবং JSON, XML, বা অন্যান্য ফরম্যাটে ডেটা এক্সচেঞ্জ করতে পারে।
নিচে Spring Boot দিয়ে RESTful Web Service তৈরির একটি গাইড দেওয়া হলো।
প্রয়োজনীয় ডিপেনডেন্সি
Spring Boot RESTful Web Service এর জন্য প্রয়োজনীয় ডিপেনডেন্সি Maven বা Gradle ফাইল যোগ করতে হবে।
Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Gradle:
implementation 'org.springframework.boot:spring-boot-starter-web'
স্টেপ ১: Spring Boot প্রজেক্ট তৈরি করা
Spring Initializr (https://start.spring.io/) এর মাধ্যমে একটি Spring Boot প্রজেক্ট তৈরি করুন এবং নিচের ডিপেনডেন্সিগুলো যুক্ত করুন:
- Spring Web
- Spring Boot DevTools (ঐচ্ছিক)
স্টেপ ২: REST Controller তৈরি করা
RESTful API তৈরির জন্য একটি @RestController অ্যানোটেশন ব্যবহার করা হয়।
Example:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users/{id}")
public User getUserById(@PathVariable int id) {
return new User(id, "John Doe", "john.doe@example.com");
}
}
স্টেপ ৩: মডেল ক্লাস তৈরি করা
ডেটা রিপ্রেজেন্টেশনের জন্য একটি মডেল ক্লাস তৈরি করুন।
Example:
public class User {
private int id;
private String name;
private String email;
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;
}
}
স্টেপ ৪: RESTful Endpoints তৈরি করা
Spring Boot-এ RESTful Endpoint তৈরি করতে @GetMapping, @PostMapping, @PutMapping, এবং @DeleteMapping অ্যানোটেশন ব্যবহার করা হয়।
Example: Create User API
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@PostMapping("/users")
public String createUser(@RequestBody User user) {
return "User created with name: " + user.getName();
}
}
স্টেপ ৫: ডেটা টেস্ট করা
Spring Boot DevTools বা Postman এর মাধ্যমে তৈরি করা REST API টেস্ট করতে পারবেন।
GET Endpoint Example:
GET http://localhost:8080/api/users/1
Response:
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
}
POST Endpoint Example:
POST http://localhost:8080/api/users
Content-Type: application/json
{
"id": 2,
"name": "Jane Doe",
"email": "jane.doe@example.com"
}
Response:
User created with name: Jane Doe
স্টেপ ৬: Exception Handling (ঐচ্ছিক)
Custom Exception এবং Global Exception Handler যোগ করা যেতে পারে।
Custom Exception:
public class UserNotFoundException extends RuntimeException {
public UserNotFoundException(String message) {
super(message);
}
}
Exception Handler:
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity<String> handleUserNotFound(UserNotFoundException ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);
}
}
Spring Boot RESTful Web Service এর সুবিধা
- Spring Boot এর মাধ্যমে REST API তৈরি করা দ্রুত এবং সহজ।
- স্বয়ংক্রিয় কনফিগারেশন, যা ডেভেলপমেন্ট টাইম কমায়।
- JSON/XML সাপোর্ট ডিফল্টভাবে পাওয়া যায়।
- সহজ Exception Handling এর জন্য বিল্ট-ইন সাপোর্ট।
- অন্যান্য Spring মডিউলের সাথে সহজ ইন্টিগ্রেশন।
Spring Boot RESTful Web Service একটি আধুনিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে একটি কার্যকর টুল। এটি দ্রুত এবং সহজে REST API তৈরি ও পরিচালনা করতে সাহায্য করে।
Read more