Database Tutorials REST API এবং PHP এর মাধ্যমে MySQL Access করা গাইড ও নোট

307

REST (Representational State Transfer) API হল একটি আর্কিটেকচারাল স্টাইল যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা বিনিময় করতে সক্ষম। REST API সাধারণত JSON বা XML ফরম্যাটে ডেটা পাঠায় এবং গ্রহণ করে, এবং এটি ওয়েব অ্যাপ্লিকেশন ও মোবাইল অ্যাপ্লিকেশনের মধ্যে ডেটা শেয়ার করার একটি জনপ্রিয় পদ্ধতি।

PHP ব্যবহার করে REST API তৈরি করা এবং MySQL ডেটাবেসে ডেটা অ্যাক্সেস করা একটি সাধারণ কাজ, যা বিভিন্ন ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনে ব্যবহৃত হতে পারে। এই গাইডে আমরা দেখব কিভাবে PHP এবং MySQL এর মাধ্যমে REST API তৈরি করা যায়।


১. REST API কী?

REST API হল একটি HTTP ভিত্তিক অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটার আদান-প্রদান করে। এটি বিভিন্ন HTTP মেথড যেমন GET, POST, PUT, DELETE ব্যবহার করে ডেটা ম্যানিপুলেট করে। REST API এর প্রধান সুবিধা হল এটি সহজ এবং স্ট্যান্ডার্ড HTTP মেথড এবং URL স্ট্রাকচার ব্যবহার করে।

REST API এর প্রধান HTTP মেথডগুলো

  • GET: ডেটা সংগ্রহ করতে ব্যবহৃত হয়।
  • POST: নতুন ডেটা তৈরি করতে ব্যবহৃত হয়।
  • PUT: বিদ্যমান ডেটা আপডেট করতে ব্যবহৃত হয়।
  • DELETE: ডেটা মুছে ফেলতে ব্যবহৃত হয়।

২. PHP দিয়ে REST API তৈরি

এখানে একটি সাধারণ REST API তৈরি করা হবে যা MySQL ডেটাবেস থেকে ডেটা সংগ্রহ করবে এবং ক্লায়েন্টকে JSON ফরম্যাটে পাঠাবে।

PHP এবং MySQL দিয়ে REST API এর স্টেপ বাই স্টেপ গাইড

১. MySQL ডেটাবেস প্রস্তুত করা

প্রথমে, একটি MySQL ডেটাবেস এবং একটি টেবিল তৈরি করতে হবে। উদাহরণস্বরূপ, একটি users টেবিল তৈরি করা হবে যেখানে ব্যবহারকারীদের নাম, ইমেইল এবং বয়স সংরক্ষণ করা হবে।

CREATE DATABASE api_example;
USE api_example;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    age INT
);

INSERT INTO users (name, email, age) VALUES 
('John Doe', 'john.doe@example.com', 30),
('Jane Smith', 'jane.smith@example.com', 25);

২. PHP দিয়ে REST API কোড তৈরি

এখন PHP স্ক্রিপ্টে REST API তৈরি করতে হবে। প্রথমে ডেটাবেস সংযোগ তৈরি করতে হবে, তারপর GET, POST, PUT, DELETE মেথড ব্যবহার করে ডেটাবেস অপারেশন পরিচালনা করা হবে।

১. ডেটাবেস সংযোগ
<?php
$host = 'localhost';
$dbname = 'api_example';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>
২. REST API কোড (GET, POST, PUT, DELETE)
<?php
header("Content-Type: application/json");

$request_method = $_SERVER["REQUEST_METHOD"];
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

// MySQL connection setup
require_once 'db.php';

// Request Handling
switch ($request_method) {
    case 'GET':
        // Retrieve all users
        if (isset($_GET['id'])) {
            getUserById($pdo, $_GET['id']);
        } else {
            getUsers($pdo);
        }
        break;
    
    case 'POST':
        // Create a new user
        createUser($pdo);
        break;

    case 'PUT':
        // Update user data
        if (isset($_GET['id'])) {
            updateUser($pdo, $_GET['id']);
        }
        break;

    case 'DELETE':
        // Delete a user
        if (isset($_GET['id'])) {
            deleteUser($pdo, $_GET['id']);
        }
        break;

    default:
        header("HTTP/1.0 405 Method Not Allowed");
        break;
}

// Function to retrieve all users
function getUsers($pdo) {
    $stmt = $pdo->query("SELECT * FROM users");
    $users = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($users);
}

// Function to retrieve user by ID
function getUserById($pdo, $id) {
    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
    $stmt->execute(['id' => $id]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);
    echo json_encode($user);
}

// Function to create a new user
function createUser($pdo) {
    $data = json_decode(file_get_contents("php://input"));
    $stmt = $pdo->prepare("INSERT INTO users (name, email, age) VALUES (:name, :email, :age)");
    $stmt->execute([
        'name' => $data->name,
        'email' => $data->email,
        'age' => $data->age
    ]);
    echo json_encode(["message" => "User created successfully"]);
}

// Function to update user data
function updateUser($pdo, $id) {
    $data = json_decode(file_get_contents("php://input"));
    $stmt = $pdo->prepare("UPDATE users SET name = :name, email = :email, age = :age WHERE id = :id");
    $stmt->execute([
        'id' => $id,
        'name' => $data->name,
        'email' => $data->email,
        'age' => $data->age
    ]);
    echo json_encode(["message" => "User updated successfully"]);
}

// Function to delete user by ID
function deleteUser($pdo, $id) {
    $stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
    $stmt->execute(['id' => $id]);
    echo json_encode(["message" => "User deleted successfully"]);
}
?>

৩. API পরীক্ষা করা

এখন আপনার REST API তৈরি হয়ে গেছে। API এর মাধ্যমে GET, POST, PUT, DELETE অপারেশন চালানোর জন্য আপনি যেকোনো API টেস্টিং টুল (যেমন Postman) বা cURL ব্যবহার করতে পারেন।

১. GET Request
GET http://localhost/api/users.php

এটি সমস্ত ব্যবহারকারীদের ডেটা JSON ফরম্যাটে ফেরত দেবে।

২. POST Request (নতুন ইউজার তৈরি)
POST http://localhost/api/users.php
Content-Type: application/json
{
    "name": "Michael Johnson",
    "email": "michael.johnson@example.com",
    "age": 40
}

এটি একটি নতুন ব্যবহারকারী ডেটাবেসে সংরক্ষণ করবে।

৩. PUT Request (ইউজারের তথ্য আপডেট)
PUT http://localhost/api/users.php?id=1
Content-Type: application/json
{
    "name": "John Doe Updated",
    "email": "john.doe.updated@example.com",
    "age": 31
}

এটি id=1 ইউজারের তথ্য আপডেট করবে।

৪. DELETE Request (ইউজার মুছে ফেলা)
DELETE http://localhost/api/users.php?id=1

এটি id=1 ইউজারকে ডেটাবেস থেকে মুছে ফেলবে।


সারাংশ

PHP এবং MySQL ব্যবহার করে একটি REST API তৈরি করা সম্ভব যা GET, POST, PUT, DELETE মেথডের মাধ্যমে ডেটাবেসে অপারেশন পরিচালনা করতে পারে। এটি JSON ফরম্যাটে ডেটা সরবরাহ করে এবং ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি কার্যকর যোগাযোগ ব্যবস্থা তৈরি করে। PHP এবং MySQL এর মাধ্যমে REST API তৈরি করার ফলে আপনি যেকোনো ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনে ডেটাবেস অ্যাক্সেস ও ম্যানিপুলেশন কার্যক্রম সহজভাবে সম্পন্ন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...