Rails এর মাধ্যমে API Routes তৈরি করা

RESTful API এবং Rails - রুবি অন রেইল (Ruby on Rails) - Web Development

349

Ruby on Rails একটি শক্তিশালী ফ্রেমওয়ার্ক যা ওয়েব অ্যাপ্লিকেশন তৈরির পাশাপাশি API (Application Programming Interface) তৈরি করতে সহায়তা করে। Rails API রুটিং সিস্টেমের মাধ্যমে আপনি খুব সহজেই RESTful API তৈরি করতে পারেন। এই টিউটোরিয়ালে আমরা দেখব কীভাবে Rails দিয়ে API রুট তৈরি করা যায় এবং এর মাধ্যমে ক্লায়েন্ট অ্যাপ্লিকেশন বা অন্যান্য সার্ভিসের সঙ্গে যোগাযোগ করা যায়।


API Routes কী?

API রুট হল ওয়েব অ্যাপ্লিকেশনের এমন রাউট যেখানে ক্লায়েন্ট অ্যাপ্লিকেশন বা ফ্রন্ট-এন্ড ওয়েবসাইট সার্ভারের সাথে ডেটা এক্সচেঞ্জ করে, সাধারণত JSON ফরম্যাটে। API রাউট তৈরি করার জন্য Rails API-only মোডে কাজ করে, যাতে শুধুমাত্র API এর জন্য প্রয়োজনীয় ফিচারগুলোই ব্যবহৃত হয়, যেমন JSON রেসপন্স, কন্ট্রোলার, রাউটিং ইত্যাদি।


Rails API-only অ্যাপ্লিকেশন তৈরি করা

Rails API তৈরি করার জন্য প্রথমে API-only mode ব্যবহার করতে হবে। এই মোডে কাজ করার জন্য rails new কমান্ডে --api অপশন ব্যবহার করা হয়। এটি একটি হালকা এবং দ্রুত API সার্ভার তৈরি করে, যেখানে অপ্রয়োজনীয় ভিউ ফাইল বা সেশনের মত জিনিসগুলো অন্তর্ভুক্ত হয় না।

rails new my_api_app --api

এই কমান্ডটি একটি নতুন API অ্যাপ্লিকেশন তৈরি করবে যা শুধুমাত্র API রাউটিং, কন্ট্রোলার এবং JSON রেসপন্সের জন্য কনফিগার করা হবে।


API Routes কনফিগারেশন

Rails-এ রাউটিং config/routes.rb ফাইলে করা হয়। API রাউটের জন্য সাধারণত namespace :api ব্যবহার করা হয়, যাতে আপনার API রুটগুলো অন্য সাধারণ ওয়েব রাউটের থেকে আলাদা থাকে।

উদাহরণ:

ধরা যাক, আমাদের একটি Posts মডেল রয়েছে এবং আমরা চাই একটি API তৈরি করতে যা পোস্ট তৈরি, পড়া, আপডেট এবং মুছে ফেলতে পারবে।

routes.rb ফাইলে রুটগুলো কনফিগার করুন:

Rails.application.routes.draw do
  namespace :api do
    resources :posts
  end
end

এখানে namespace :api দ্বারা সমস্ত API রাউট api/ নামস্পেসে থাকবে। resources :posts দ্বারা Rails স্বয়ংক্রিয়ভাবে RESTful রাউটগুলোর একটি সিরিজ তৈরি করে, যেমন:

  • GET /api/posts - সকল পোস্টের তালিকা
  • GET /api/posts/:id - নির্দিষ্ট পোস্ট
  • POST /api/posts - নতুন পোস্ট তৈরি
  • PUT /api/posts/:id - পোস্ট আপডেট
  • DELETE /api/posts/:id - পোস্ট মুছে ফেলা

Controller তৈরি করা

এখন, আমরা একটি API কন্ট্রোলার তৈরি করব যা আমাদের পোস্ট রাউটগুলির জন্য রিকোয়েস্ট হ্যান্ডেল করবে।

rails generate controller api/posts

এটি app/controllers/api/posts_controller.rb ফাইল তৈরি করবে, যেখানে আমাদের সকল API একশন থাকবে।

api/posts_controller.rb:

module Api
  class PostsController < ApplicationController
    # সকল পোস্ট দেখানোর একশন
    def index
      @posts = Post.all
      render json: @posts
    end

    # নির্দিষ্ট পোস্ট দেখানোর একশন
    def show
      @post = Post.find(params[:id])
      render json: @post
    end

    # নতুন পোস্ট তৈরি করার একশন
    def create
      @post = Post.new(post_params)
      if @post.save
        render json: @post, status: :created
      else
        render json: @post.errors, status: :unprocessable_entity
      end
    end

    # পোস্ট আপডেট করার একশন
    def update
      @post = Post.find(params[:id])
      if @post.update(post_params)
        render json: @post
      else
        render json: @post.errors, status: :unprocessable_entity
      end
    end

    # পোস্ট ডিলিট করার একশন
    def destroy
      @post = Post.find(params[:id])
      @post.destroy
      head :no_content
    end

    private

    def post_params
      params.require(:post).permit(:title, :content)
    end
  end
end

একশনগুলো:

  • index: সকল পোস্ট ফেরত দেয়।
  • show: একটি নির্দিষ্ট পোস্ট ফেরত দেয়।
  • create: নতুন পোস্ট তৈরি করে।
  • update: পোস্ট আপডেট করে।
  • destroy: পোস্ট মুছে ফেলে।

এছাড়া, post_params মেথডটি Strong Parameters ব্যবহার করে নিশ্চিত করে যে, শুধু নির্দিষ্ট অ্যাট্রিবিউটগুলো (যেমন title এবং content) পাস করা যাবে।


API রেসপন্স ফরম্যাট

Rails স্বাভাবিকভাবে JSON রেসপন্স তৈরি করে API রিকোয়েস্টগুলির জন্য, তবে আপনি যদি কাস্টম JSON আউটপুট চান, তাহলে আপনি কন্ট্রোলারের render json: মেথড ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

render json: @post, status: :created

এটি JSON ফরম্যাটে একটি সাড়া পাঠাবে, এবং HTTP স্ট্যাটাস কোড হিসেবে 201 Created সেট করবে।


API Testing

API তৈরি করার পর, আপনি এটি Postman, cURL অথবা RSpec ব্যবহার করে টেস্ট করতে পারেন।

Postman:

Postman হল একটি জনপ্রিয় টুল API টেস্টিংয়ের জন্য। আপনি সহজেই API রিকোয়েস্ট তৈরি করে রেসপন্স দেখতে পারেন।

cURL:

curl -X GET http://localhost:3000/api/posts

এই কমান্ডটি GET /api/posts রিকোয়েস্ট পাঠাবে এবং সকল পোস্টের তালিকা ফেরত পাবে।

RSpec:

Rails API টেস্ট করার জন্য আপনি RSpec ব্যবহার করতে পারেন। একটি সাধারণ API টেস্টের উদাহরণ:

require 'rails_helper'

RSpec.describe "Posts API", type: :request do
  # সকল পোস্ট দেখানোর টেস্ট
  describe 'GET /api/posts' do
    it 'returns all posts' do
      post = Post.create!(title: 'Test Post', content: 'This is a test post')
      get '/api/posts'
      expect(response).to have_http_status(200)
      expect(response.body).to include('Test Post')
    end
  end
end

এই টেস্টটি /api/posts রুটে GET রিকোয়েস্ট পাঠাবে এবং রেসপন্স স্ট্যাটাস কোড চেক করবে।


সারমর্ম

Rails API Routes তৈরি করা খুবই সহজ এবং সরল। Rails রাউটিং সিস্টেমের মাধ্যমে আপনি namespace :api ব্যবহার করে API রাউট এবং কন্ট্রোলার তৈরি করতে পারেন। এটি RESTful রাউটগুলি তৈরি করতে সাহায্য করে এবং ক্লায়েন্টের সঙ্গে ডেটা আদান-প্রদান (জেমন JSON রেসপন্স) করার সুবিধা প্রদান করে। API-এ সাধারণ CRUD অপারেশনগুলো পরিচালনা করতে আপনি কন্ট্রোলার মেথডগুলো ব্যবহার করতে পারেন, এবং Postman, cURL, অথবা RSpec ব্যবহার করে API টেস্ট করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...