Java Technologies @RestController এবং @RequestMapping এর ব্যবহার গাইড ও নোট

312

Spring Boot একটি জনপ্রিয় ফ্রেমওয়ার্ক যা Java এ ওয়েব অ্যাপ্লিকেশন এবং RESTful সার্ভিস তৈরি করতে ব্যবহৃত হয়। Spring Boot এ API তৈরি করতে অনেক সহজ এবং স্বয়ংক্রিয় কনফিগারেশন থাকে। দুটি গুরুত্বপূর্ণ অ্যানোটেশন যা ওয়েব অ্যাপ্লিকেশন এবং RESTful সার্ভিসে ব্যবহৃত হয়, তা হলো @RestController এবং @RequestMapping। চলুন এগুলোর ব্যবহার এবং উদ্দেশ্য নিয়ে আলোচনা করি।


@RestController অ্যানোটেশন

@RestController অ্যানোটেশনটি Spring MVC (Model-View-Controller) এর অংশ এবং এটি একটি কনভিনিয়েন্ট ডিফাইনেশন যা @Controller এবং @ResponseBody অ্যানোটেশনগুলির সংমিশ্রণ। এর মাধ্যমে, Spring Boot অ্যাপ্লিকেশনকে RESTful ওয়েব সার্ভিস হিসেবে তৈরি করা হয়, যেখানে প্রতিটি রিকোয়েস্টের জন্য ডেটা JSON বা XML ফর্ম্যাটে রেসপন্স দেওয়া হয়। @RestController অ্যানোটেশন ব্যবহারের ফলে, মেথডের রিটার্ন ভ্যালু স্বয়ংক্রিয়ভাবে HTTP রেসপন্সে পরিণত হয় এবং তা ক্লায়েন্টকে পাঠানো হয়।

@RestController এর ব্যবহার

@RestController
public class UserController {

    @GetMapping("/users")
    public List<User> getUsers() {
        List<User> users = new ArrayList<>();
        users.add(new User(1, "John Doe"));
        users.add(new User(2, "Jane Smith"));
        return users;  // Automatically converted to JSON
    }
}

এখানে, @RestController অ্যানোটেশনটি ক্লাসটির উপরে রাখা হয়েছে, যা এটিকে একটি REST API কন্ট্রোলার হিসাবে চিহ্নিত করে। @GetMapping এর মাধ্যমে HTTP GET রিকোয়েস্টের জন্য /users রাউটটি যুক্ত করা হয়েছে। এই রাউটটি যখন কল হবে, তখন একটি JSON ফর্ম্যাটে ইউজারদের ডেটা রিটার্ন হবে।


@RequestMapping অ্যানোটেশন

@RequestMapping অ্যানোটেশনটি Spring MVC এর একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা HTTP রিকোয়েস্টের URL, HTTP মেথড এবং হ্যান্ডলিং মেথডকে ম্যাপ করে। @RequestMapping অ্যানোটেশনটি মেথড লেভেলে বা ক্লাস লেভেলে ব্যবহার করা যেতে পারে। এটি একাধিক HTTP মেথড যেমন GET, POST, PUT, DELETE ইত্যাদি হ্যান্ডল করার জন্য ব্যবহার করা যেতে পারে।

@RequestMapping এর সিঙ্কট্যাক্স:

@RequestMapping(value = "/endpoint", method = RequestMethod.GET)
public ResponseEntity<String> handleRequest() {
    return new ResponseEntity<>("Hello World", HttpStatus.OK);
}

এখানে, /endpoint URL এবং GET HTTP মেথডের জন্য handleRequest() মেথডটি ম্যাপ করা হয়েছে। এই মেথডটি "Hello World" স্ট্রিং রিটার্ন করবে এবং HTTP স্ট্যাটাস 200 (OK) সহ রেসপন্স পাঠাবে।

@RequestMapping এর ব্যবহার উদাহরণ

@RestController
@RequestMapping("/api/users")
public class UserController {

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public List<User> getUsers() {
        List<User> users = new ArrayList<>();
        users.add(new User(1, "John Doe"));
        users.add(new User(2, "Jane Smith"));
        return users;
    }

    @RequestMapping(value = "/", method = RequestMethod.POST)
    public ResponseEntity<String> addUser(@RequestBody User user) {
        // Logic to add user
        return new ResponseEntity<>("User added successfully", HttpStatus.CREATED);
    }
}

এখানে, @RequestMapping এর মাধ্যমে /api/users/ এ GET এবং POST মেথডের জন্য রিকোয়েস্ট হ্যান্ডেল করা হচ্ছে।


@RequestMapping এবং HTTP মেথড

@RequestMapping অ্যানোটেশনটি যে কোনো HTTP মেথডের সাথে ব্যবহৃত হতে পারে, তবে স্প্রিং বুটে কিছু বিশেষ অ্যানোটেশন রয়েছে যা নির্দিষ্ট HTTP মেথডের জন্য ব্যবহৃত হয়। যেমন:

  • @GetMapping: GET রিকোয়েস্ট হ্যান্ডল করার জন্য।
  • @PostMapping: POST রিকোয়েস্ট হ্যান্ডল করার জন্য।
  • @PutMapping: PUT রিকোয়েস্ট হ্যান্ডল করার জন্য।
  • @DeleteMapping: DELETE রিকোয়েস্ট হ্যান্ডল করার জন্য।
  • @PatchMapping: PATCH রিকোয়েস্ট হ্যান্ডল করার জন্য।

উদাহরণস্বরূপ:

@RestController
@RequestMapping("/api/users")
public class UserController {

    @GetMapping("/")
    public List<User> getUsers() {
        // Fetch users
    }

    @PostMapping("/")
    public ResponseEntity<String> createUser(@RequestBody User user) {
        // Create user logic
    }
}

এই ক্ষেত্রে, @GetMapping এবং @PostMapping যথাক্রমে GET এবং POST HTTP রিকোয়েস্ট হ্যান্ডল করে।


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

  • @RestController: এটি একটি কনভিনিয়েন্ট অ্যানোটেশন যা @Controller এবং @ResponseBody অ্যানোটেশনগুলোকে একত্রে সংযুক্ত করে। এটি RESTful সার্ভিসের জন্য ব্যবহৃত হয় এবং এটি যেকোনো মেথডের রিটার্ন ভ্যালুকে HTTP রেসপন্সে রূপান্তর করে।
  • @RequestMapping: এটি ক্লাস বা মেথড লেভেলে ব্যবহৃত হতে পারে এবং একটি নির্দিষ্ট URL পাথ এবং HTTP মেথডের জন্য রিকোয়েস্ট হ্যান্ডলিং মেথড ম্যাপ করে। এটি অনেক বেশি সাধারণ এবং সাধারণভাবে ব্যবহার করা হয়, যদিও Spring 4 থেকে @GetMapping, @PostMapping, @PutMapping ইত্যাদি স্পেসিফিক মেথডগুলোর ব্যবহার বেশি হয়ে থাকে।

সারাংশ

Spring Boot এ @RestController এবং @RequestMapping হল দুটি অত্যন্ত গুরুত্বপূর্ণ অ্যানোটেশন যা RESTful API এবং ওয়েব অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। @RestController একটি কনভিনিয়েন্ট অ্যানোটেশন যা সার্ভিসের আউটপুটকে JSON বা XML এ রূপান্তরিত করে এবং @RequestMapping URL, HTTP মেথড, এবং কন্ট্রোলারের মধ্যে সংযোগ তৈরি করে। নতুন স্প্রিং বুট সংস্করণে @GetMapping, @PostMapping, @PutMapping ইত্যাদি অ্যানোটেশনগুলো ব্যবহারের মাধ্যমে কোড আরও পরিষ্কার এবং সহজ হতে পারে।


Content added By
Promotion

Are you sure to start over?

Loading...