Spring এর @RestController এবং @RequestMapping এর ব্যবহার

Spring RESTful Web Services - স্প্রিং (Spring) - Java Technologies

360

স্প্রিং ফ্রেমওয়ার্কে @RestController এবং @RequestMapping অ্যানোটেশন দুটি গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষ করে RESTful web services তৈরি করার জন্য। এই দুটি অ্যানোটেশন স্প্রিং মডিউল Spring MVC এবং Spring Boot এর অংশ হিসেবে ব্যবহার করা হয় এবং তাদের মাধ্যমে ওয়েব অ্যাপ্লিকেশন বা API তৈরি করা অনেক সহজ হয়ে যায়।

@RestController এর ব্যবহার

স্প্রিং @RestController একটি বিশেষ ধরনের কন্ট্রোলার অ্যানোটেশন যা @Controller এবং @ResponseBody অ্যানোটেশনের সংমিশ্রণ। এটি স্প্রিং MVC এর মধ্যে একটি রেস্টফুল কন্ট্রোলার তৈরি করার জন্য ব্যবহৃত হয়। যখন @RestController ব্যবহার করা হয়, তখন প্রতিটি মেথডের রিটার্ন ভ্যালু সরাসরি HTTP Response Body হিসেবে ক্লায়েন্টে পাঠানো হয়, এবং অতিরিক্ত view rendering বা model object rendering প্রয়োজন হয় না।

@RestController এর মূল বৈশিষ্ট্য:

  1. RESTful Web Services তৈরি করতে ব্যবহৃত হয়।
  2. @ResponseBody অ্যানোটেশনটি প্রতিটি মেথডের রিটার্ন ভ্যালু HTTP Response Body তে কনভার্ট করে।
  3. JSON বা XML ফরম্যাটে রেসপন্স প্রদান করা সহজ হয়।

@RestController এর উদাহরণ

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @GetMapping("/users")
    public String getUsers() {
        return "List of users";  // This will be returned as the HTTP response body
    }
}

ব্যাখ্যা:

  • @RestController অ্যানোটেশন কন্ট্রোলার ক্লাসে ব্যবহার করা হয়েছে, যা HTTP রিকোয়েস্টের জন্য রেসপন্স ফেরত দিবে।
  • @GetMapping("/users"): এটি একটি HTTP GET রিকোয়েস্টের জন্য মেথডটি ম্যাপ করে। এই রিকোয়েস্টের প্রতিক্রিয়া হিসেবে, "List of users" একটি JSON বা String ফরম্যাটে রিটার্ন হবে।

@RequestMapping এর ব্যবহার

@RequestMapping একটি সাধারণ এবং শক্তিশালী অ্যানোটেশন যা স্প্রিং মডিউলে HTTP রিকোয়েস্ট (যেমন GET, POST, PUT, DELETE) এর সাথে মেথডকে ম্যাপ করার জন্য ব্যবহৃত হয়। এটি সাধারণত স্প্রিং কন্ট্রোলার ক্লাসে ব্যবহার করা হয় যাতে HTTP রিকোয়েস্টের বিভিন্ন ধরণকে কন্ট্রোলার মেথডে ম্যাপ করা যায়।

@RequestMapping এর মূল বৈশিষ্ট্য:

  1. এটি একটি বেসিক অ্যানোটেশন যা একাধিক HTTP মেথড (GET, POST, PUT, DELETE) এর জন্য কাজ করে।
  2. URL mapping, HTTP method, এবং headers নির্ধারণে সাহায্য করে।

@RequestMapping এর উদাহরণ

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @RequestMapping("/hello")
    public String sayHello() {
        return "Hello, Spring!";
    }
}

ব্যাখ্যা:

  • @RequestMapping("/hello"): এটি /hello URL এর জন্য একটি HTTP রিকোয়েস্ট ম্যাপ করে। এখানে, আমরা GET রিকোয়েস্টের জন্য একটি মেথড তৈরি করেছি, যা "Hello, Spring!" মেসেজ রিটার্ন করবে।

@RequestMapping এবং HTTP Methods

স্প্রিং @RequestMapping অ্যানোটেশনটি বিভিন্ন HTTP মেথডের সাথে কাজ করতে পারে, কিন্তু স্প্রিং 4.3 থেকে @GetMapping, @PostMapping, @PutMapping, @DeleteMapping ইত্যাদি অ্যানোটেশন যোগ করা হয়েছে যা স্পেসিফিক HTTP মেথডের জন্য আরও পরিষ্কারভাবে কাজ করে।

Example with HTTP Method Types

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    // Handles GET requests
    @GetMapping("/users")
    public String getUsers() {
        return "Returning list of users (GET request)";
    }

    // Handles POST requests
    @PostMapping("/users")
    public String createUser() {
        return "Creating a new user (POST request)";
    }
}

এখানে:

  • @GetMapping("/users"): GET রিকোয়েস্টের জন্য ব্যবহৃত হয়েছে।
  • @PostMapping("/users"): POST রিকোয়েস্টের জন্য ব্যবহৃত হয়েছে।

@RequestMapping এর সাথে Parameters এবং Headers

@RequestMapping এর মাধ্যমে URL প্যারামিটার এবং HTTP হেডারও পাঠানো যেতে পারে। নিচে এর উদাহরণ দেওয়া হলো:

Example with Request Parameters

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @RequestMapping("/users")
    public String getUserById(@RequestParam int id) {
        return "Fetching user with ID: " + id;
    }
}

এখানে:

  • @RequestParam ব্যবহার করে ইউজারের id প্যারামিটারটি রিকোয়েস্ট থেকে নেয়া হচ্ছে।

Example with Headers

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @RequestMapping("/users")
    public String getUserByHeader(@RequestHeader("User-Agent") String userAgent) {
        return "User-Agent is: " + userAgent;
    }
}

এখানে:

  • @RequestHeader ব্যবহার করে HTTP হেডার থেকে User-Agent ডেটা নেয়া হচ্ছে।

@RequestMapping এবং @RestController এর মধ্যে পার্থক্য

  • @RestController: এটি একটি স্টোরি অ্যানোটেশন যা @Controller এবং @ResponseBody এর সমন্বয়, এবং RESTful সার্ভিসের জন্য ডিজাইন করা হয়েছে। এটি মেথডের রিটার্ন ভ্যালুকে ডিরেক্ট HTTP রেসপন্স বডিতে পাঠায় (JSON বা XML)।
  • @RequestMapping: এটি একটি জেনেরাল অ্যানোটেশন যা HTTP রিকোয়েস্টের সাথে কন্ট্রোলারের মেথড ম্যাপ করতে ব্যবহৃত হয়। এটি HTTP মেথডের ধরন যেমন GET, POST, PUT, DELETE ইত্যাদির জন্য ব্যবহার করা যেতে পারে।

Conclusion

স্প্রিং ফ্রেমওয়ার্কে @RestController এবং @RequestMapping অ্যানোটেশন দুটি গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষ করে RESTful Web Services তৈরি করতে।

  • @RestController অ্যানোটেশন ব্যবহারের মাধ্যমে স্প্রিং কন্ট্রোলারের রিটার্ন ভ্যালু সরাসরি HTTP রেসপন্স বডিতে রিটার্ন করা হয়।
  • @RequestMapping অ্যানোটেশন দিয়ে URL মেপিং এবং HTTP মেথডের সাথে সম্পর্কিত কন্ট্রোলার মেথড নির্ধারণ করা হয়।

এটি স্প্রিং মডিউলে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য খুবই গুরুত্বপূর্ণ এবং ব্যবহারে সুবিধাজনক।

Content added By
Promotion

Are you sure to start over?

Loading...