Ruby এর মাধ্যমে RESTful APIs এ কাজ

Networking এবং Web APIs (নেটওয়ার্কিং এবং ওয়েব এপিআইস) - রুবি প্রোগ্রামিং (Ruby Programming) - Computer Programming

348

RESTful APIs হল একটি জনপ্রিয় আর্কিটেকচারাল স্টাইল, যা HTTP প্রটোকলের উপর ভিত্তি করে বিভিন্ন ধরনের ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ প্রতিষ্ঠা করে। Ruby ভাষায় RESTful API তৈরি এবং কনজিউম (consume) করার জন্য বেশ কিছু টুল এবং লাইব্রেরি রয়েছে। সবচেয়ে সাধারণ লাইব্রেরি যা রুবিতে RESTful API তৈরি এবং কনজিউম করতে ব্যবহৃত হয় তা হলো Rails (একটি রুবি ফ্রেমওয়ার্ক) এবং HTTParty বা RestClient (অন্য লাইব্রেরি)।

এখানে আমরা আলোচনা করবো কীভাবে রুবির মাধ্যমে একটি RESTful API তৈরি করা যায় এবং API থেকে ডেটা পাঠানো বা গ্রহণ করা যায়।


১. RESTful API তৈরি করা Ruby on Rails এর মাধ্যমে

Ruby on Rails একটি খুবই জনপ্রিয় ফ্রেমওয়ার্ক, যা RESTful API তৈরি করতে সাহায্য করে। Rails সাধারণত GET, POST, PUT, PATCH, DELETE HTTP মেথড ব্যবহার করে API রাউটিং সহজভাবে পরিচালনা করে। Rails-এ API তৈরি করার জন্য কিছু সাধারণ ধাপ:

১.1. Rails API তৈরি করা

রেলসের মাধ্যমে একটি API অ্যাপ্লিকেশন তৈরি করতে, আপনি --api অপশন ব্যবহার করতে পারেন, যা শুধুমাত্র API সম্পর্কিত ফিচার এবং কমপোনেন্ট ব্যবহার করবে।

rails new my_api_app --api

এই কমান্ডটি একটি নতুন Rails অ্যাপ্লিকেশন তৈরি করবে যেটি API-centric (API ভিত্তিক) অ্যাপ্লিকেশন হবে।

১.2. Controller তৈরি করা

API রাউটের জন্য একটি controller তৈরি করুন, যেখানে API এর বিভিন্ন রিকোয়েস্টের জন্য মেথড থাকবে।

rails generate controller Users

এটি একটি UsersController তৈরি করবে। এখন, আমরা এখানে একটি RESTful API মেথড যোগ করতে পারি।

১.3. UsersController তৈরি করা

class UsersController < ApplicationController
  # GET /users
  def index
    @users = User.all
    render json: @users
  end

  # POST /users
  def create
    @user = User.new(user_params)
    if @user.save
      render json: @user, status: :created
    else
      render json: @user.errors, status: :unprocessable_entity
    end
  end

  # GET /users/:id
  def show
    @user = User.find(params[:id])
    render json: @user
  end

  # PUT /users/:id
  def update
    @user = User.find(params[:id])
    if @user.update(user_params)
      render json: @user
    else
      render json: @user.errors, status: :unprocessable_entity
    end
  end

  # DELETE /users/:id
  def destroy
    @user = User.find(params[:id])
    @user.destroy
    head :no_content
  end

  private

  def user_params
    params.require(:user).permit(:name, :email, :age)
  end
end

এখানে, আমরা index, create, show, update, এবং destroy মেথডগুলি তৈরি করেছি, যা CRUD (Create, Read, Update, Delete) অপারেশনগুলিকে API হিসেবে পরিচালনা করে।

১.4. Routes সেটআপ করা

রাউটের মাধ্যমে আমরা API এর URL এবং HTTP মেথডগুলোকে মাপ (map) করি।

# config/routes.rb
Rails.application.routes.draw do
  resources :users
end

এটি users রিসোর্সের জন্য RESTful রাউটিং তৈরি করবে।

১.5. Model তৈরি করা

এখন, আমরা User মডেল তৈরি করব যাতে ডেটাবেসের টেবিলটি ধারণ করে।

rails generate model User name:string email:string age:integer
rails db:migrate

এটি users টেবিল তৈরি করবে এবং name, email, age কলাম যোগ করবে।

১.6. API ব্যবহার করা

API তৈরি করার পরে, আপনি HTTP রিকোয়েস্ট যেমন GET, POST, PUT, এবং DELETE ব্যবহার করে API থেকে ডেটা পাঠাতে বা গ্রহণ করতে পারেন।


২. Ruby এর মাধ্যমে RESTful API কনজিউম করা

RESTful API কনজিউম করার জন্য রুবিতে কিছু জনপ্রিয় লাইব্রেরি রয়েছে, যেমন HTTParty এবং RestClient। এখানে HTTParty ব্যবহার করে API কনজিউম করার একটি উদাহরণ দেওয়া হলো।

২.1. HTTParty ইনস্টল করা

প্রথমে, আপনার রুবি প্রজেক্টে HTTParty ইনস্টল করতে হবে। আপনার Gemfile-এ এটি যোগ করুন:

gem 'httparty'

তারপর, bundle install চালিয়ে গেমটি ইনস্টল করুন।

২.2. HTTParty ব্যবহার করে GET রিকোয়েস্ট করা

require 'httparty'

class ApiClient
  include HTTParty
  base_uri 'https://jsonplaceholder.typicode.com'

  def get_users
    self.class.get('/users')
  end
end

client = ApiClient.new
response = client.get_users
puts response.body

এখানে, base_uri নির্ধারণ করা হয়েছে এবং get_users মেথডে GET রিকোয়েস্ট করা হয়েছে। response.body দিয়ে আমরা API থেকে প্রাপ্ত ডেটা মুদ্রণ করেছি।

২.3. HTTParty ব্যবহার করে POST রিকোয়েস্ট করা

require 'httparty'

class ApiClient
  include HTTParty
  base_uri 'https://jsonplaceholder.typicode.com'

  def create_user(name, email)
    self.class.post('/users', body: { name: name, email: email })
  end
end

client = ApiClient.new
response = client.create_user("Alice", "alice@example.com")
puts response.body

এখানে, create_user মেথডে POST রিকোয়েস্ট করা হয়েছে, যেখানে name এবং email প্যারামিটার হিসেবে পাঠানো হয়েছে।

২.4. Error Handling

API রিকোয়েস্টের জন্য ত্রুটি হ্যান্ডলিংও করা যায়। উদাহরণস্বরূপ, HTTParty দিয়ে ত্রুটি চেক করা:

response = client.get_users
if response.success?
  puts "Data received: #{response.body}"
else
  puts "Error: #{response.code}"
end

এখানে, যদি রিকোয়েস্ট সফল না হয়, তাহলে আমরা HTTP স্টেটাস কোড দেখাচ্ছি।


সারসংক্ষেপ

  • RESTful API তৈরি করার জন্য রুবি অন রেলস একটি শক্তিশালী ফ্রেমওয়ার্ক, যেখানে আপনি GET, POST, PUT, DELETE HTTP মেথড ব্যবহার করে ডেটা ম্যানিপুলেশন করতে পারেন।
  • HTTParty বা RestClient লাইব্রেরি ব্যবহার করে রুবি থেকে RESTful API কনজিউম করা যায়, যেখানে HTTP রিকোয়েস্ট করা হয় এবং API থেকে ডেটা পাওয়া বা পাঠানো হয়।
  • রুবি দ্বারা RESTful APIs তৈরির সময় MVC প্যাটার্ন অনুসরণ করে ডেটাবেস, মডেল, কন্ট্রোলার এবং রাউটিং সঠিকভাবে ব্যবহার করা হয়।

এটি রুবি এবং রেলসের মাধ্যমে RESTful API তৈরি এবং কনজিউম করার মূল ধারণা ছিল।

Content added By
Promotion

Are you sure to start over?

Loading...