MySQLi এবং API Integration

মাইএসকিউএল আই (MySQLi) - Database Tutorials

257

API (Application Programming Interface) Integration একটি ওয়েব অ্যাপ্লিকেশনের অপরিহার্য অংশ, যেখানে একাধিক সিস্টেম বা অ্যাপ্লিকেশন একে অপরের সাথে যোগাযোগ করে এবং ডেটা শেয়ার করে। MySQLi ব্যবহার করে API ইন্টিগ্রেশন খুবই সাধারণ, যেখানে ডেটাবেস থেকে ডাটা নিয়ে API তৈরি করা হয় এবং একে অন্যান্য সিস্টেমের সাথে শেয়ার করা হয়।

এখানে, MySQLi এর মাধ্যমে API ইন্টিগ্রেশন করার পদ্ধতি বিস্তারিতভাবে আলোচনা করা হচ্ছে।


MySQLi দিয়ে API ইন্টিগ্রেশন

১. API তৈরি এবং ডাটাবেস থেকে ডাটা রিট্রিভ করা

একটি সাধারণ REST API তৈরি করতে, যেখানে MySQLi ব্যবহার করে ডাটাবেস থেকে ডাটা রিট্রিভ করা হয়, এর জন্য GET রিকোয়েস্টের মাধ্যমে ডাটাবেস থেকে ডাটা ফেচ করা হয় এবং সেই ডাটা JSON (JavaScript Object Notation) ফরম্যাটে রিটার্ন করা হয়।

REST API উদাহরণ (GET রিকোয়েস্ট):

PHP স্ক্রিপ্ট (api.php):

<?php
header('Content-Type: application/json');

$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

$query = "SELECT * FROM users";
$result = $mysqli->query($query);

$users = array();

while ($row = $result->fetch_assoc()) {
    $users[] = $row;
}

echo json_encode($users);
?>

কীভাবে কাজ করে:

  • এখানে header('Content-Type: application/json'); ব্যবহার করা হয়েছে যাতে রেসপন্স JSON ফরম্যাটে হয়।
  • MySQLi এর মাধ্যমে ডাটাবেস থেকে ডাটা নেওয়া হচ্ছে এবং json_encode() ফাংশনের মাধ্যমে সেটি JSON ফরম্যাটে রিটার্ন করা হচ্ছে।

এখন, যখন আপনি GET রিকোয়েস্ট করবেন, তখন JSON ফরম্যাটে ব্যবহারকারীদের ডাটা পাবেন।


২. POST রিকোয়েস্ট ব্যবহার করে ডাটা ইনসার্ট করা

API এর মাধ্যমে ডাটাবেসে নতুন ডাটা ইনসার্ট করার জন্য POST রিকোয়েস্ট ব্যবহার করা হয়। ব্যবহারকারী যখন ডাটা প্রেরণ করবে, তখন সেটি MySQLi দিয়ে ডাটাবেসে সেভ করা হবে।

PHP স্ক্রিপ্ট (insert_user.php):

<?php
header('Content-Type: application/json');

$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

$data = json_decode(file_get_contents("php://input"), true);

$name = $data['name'];
$email = $data['email'];

$stmt = $mysqli->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();

$response = array("message" => "User added successfully");
echo json_encode($response);
?>

কীভাবে কাজ করে:

  • file_get_contents("php://input") এর মাধ্যমে ক্লায়েন্ট থেকে পাঠানো JSON ডেটা গ্রহণ করা হয়।
  • json_decode() ফাংশন ব্যবহার করে সেই JSON ডেটাকে অ্যাসোসিয়েটিভ অ্যারে হিসেবে রূপান্তর করা হয়।
  • MySQLi দিয়ে সেই ডেটা ইনসার্ট করা হয় এবং JSON রেসপন্স প্রেরণ করা হয়।

৩. PUT রিকোয়েস্ট ব্যবহার করে ডাটা আপডেট করা

API ব্যবহার করে MySQLi দিয়ে ডাটাবেসে ডাটা আপডেট করা হয়। PUT রিকোয়েস্টের মাধ্যমে ব্যবহারকারীর প্রদত্ত নতুন ডাটা ডাটাবেসে আপডেট করা হয়।

PHP স্ক্রিপ্ট (update_user.php):

<?php
header('Content-Type: application/json');

$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

$data = json_decode(file_get_contents("php://input"), true);

$id = $data['id'];
$name = $data['name'];
$email = $data['email'];

$stmt = $mysqli->prepare("UPDATE users SET name = ?, email = ? WHERE id = ?");
$stmt->bind_param("ssi", $name, $email, $id);
$stmt->execute();

$response = array("message" => "User updated successfully");
echo json_encode($response);
?>

কীভাবে কাজ করে:

  • এখানে, PUT রিকোয়েস্টের মাধ্যমে ডাটা আপডেট করা হচ্ছে।
  • API ব্যবহারকারী তাদের আইডি, নাম এবং ইমেইল প্যারামিটার হিসেবে প্রেরণ করবে, এবং সেগুলো MySQLi দিয়ে আপডেট করা হবে।

৪. DELETE রিকোয়েস্ট ব্যবহার করে ডাটা মুছে ফেলা

API এর মাধ্যমে ডাটাবেস থেকে ডাটা মুছে ফেলার জন্য DELETE রিকোয়েস্ট ব্যবহার করা হয়। এটি সাধারণত ব্যবহারকারীর আইডি নিয়ে ডাটাবেস থেকে সংশ্লিষ্ট রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়।

PHP স্ক্রিপ্ট (delete_user.php):

<?php
header('Content-Type: application/json');

$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

$data = json_decode(file_get_contents("php://input"), true);

$id = $data['id'];

$stmt = $mysqli->prepare("DELETE FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();

$response = array("message" => "User deleted successfully");
echo json_encode($response);
?>

কীভাবে কাজ করে:

  • DELETE রিকোয়েস্টের মাধ্যমে ডাটাবেস থেকে নির্দিষ্ট ইউজারকে মুছে ফেলা হয়।
  • রেসপন্স JSON ফরম্যাটে প্রেরণ করা হয়, যাতে ক্লায়েন্ট সফল অপারেশন সম্পর্কে জানতে পারে।

MySQLi এবং API Integration এর সুবিধা

  • ডেটা এক্সচেঞ্জ: MySQLi এবং API এর মাধ্যমে ডাটাবেস থেকে ডেটা এক্সচেঞ্জ করা খুব সহজ হয়।
  • রিয়েল-টাইম ডেটা: API ব্যবহার করে রিয়েল-টাইম ডেটা আপডেট করা যায়, যা ওয়েব অ্যাপ্লিকেশনকে আরো ইন্টারঅ্যাকটিভ করে তোলে।
  • মোবাইল অ্যাপ্লিকেশন: API ইন্টিগ্রেশন মোবাইল অ্যাপ্লিকেশনগুলির জন্যও অত্যন্ত উপকারী, যেখানে সার্ভার এবং ডাটাবেসের সাথে যোগাযোগের জন্য API ব্যবহৃত হয়।

MySQLi এবং API ইন্টিগ্রেশন অত্যন্ত কার্যকরী এবং এটি আপনাকে আপনার অ্যাপ্লিকেশন বা ওয়েবসাইটের ডেটা ব্যবস্থাপনা এবং ইন্টিগ্রেশনকে আরও উন্নত করতে সাহায্য করে।

Content added By

REST API (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা বিনিময়ের জন্য HTTP প্রোটোকল ব্যবহার করে। MySQLi (MySQL Improved Extension) ব্যবহার করে REST API তৈরি করা হলে, আপনি MySQL ডেটাবেস থেকে ডেটা রিট্রিভ, আপডেট, ইনসার্ট বা ডিলিট করতে পারেন। এটি ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনের মধ্যে ডেটা সঞ্চালন সহজ করে তোলে।


REST API কী?

REST API একটি স্ট্যান্ডার্ড মেথড যা বিভিন্ন ধরনের ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন ওয়েব, মোবাইল) এর মাধ্যমে ডেটাবেস বা সার্ভিসের সাথে যোগাযোগ করতে সাহায্য করে। এটি HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ডেটা ট্রান্সফার করে।


MySQLi দিয়ে REST API তৈরি

MySQLi ব্যবহার করে REST API তৈরি করার জন্য, আপনাকে প্রথমে HTTP রিকোয়েস্ট গ্রহণ করতে হবে এবং তারপর MySQL ডেটাবেসের সাথে যোগাযোগ করতে হবে। এখানে একটি সাধারণ উদাহরণ দেওয়া হল, যেখানে GET, POST, PUT, এবং DELETE মেথড ব্যবহার করে MySQL ডেটাবেসের ডেটা পরিচালনা করা হচ্ছে।


GET মেথড: ডেটা রিট্রিভ করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// GET রিকোয়েস্ট থেকে ইউজার আইডি নেওয়া
$id = isset($_GET['id']) ? $_GET['id'] : null;

// কুয়েরি তৈরি
$query = "SELECT * FROM users";
if ($id) {
    $query .= " WHERE id = $id";
}

$result = $conn->query($query);

if ($result->num_rows > 0) {
    $users = array();
    while($row = $result->fetch_assoc()) {
        $users[] = $row;
    }
    echo json_encode($users);
} else {
    echo json_encode(["message" => "No users found"]);
}

$conn->close();
?>

এখানে GET রিকোয়েস্টের মাধ্যমে ইউজার ডেটা রিট্রিভ করা হয়েছে।


POST মেথড: নতুন ডেটা ইনসার্ট করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// POST রিকোয়েস্ট থেকে ডেটা নেওয়া
$data = json_decode(file_get_contents("php://input"), true);

// ইনপুট ভ্যালু যাচাই
if (isset($data['name']) && isset($data['email']) && isset($data['age'])) {
    $name = $data['name'];
    $email = $data['email'];
    $age = $data['age'];

    // প্যারামিটারাইজড কুয়েরি তৈরি
    $stmt = $conn->prepare("INSERT INTO users (name, email, age) VALUES (?, ?, ?)");
    $stmt->bind_param("ssi", $name, $email, $age);

    // কুয়েরি এক্সিকিউট
    if ($stmt->execute()) {
        echo json_encode(["message" => "User added successfully"]);
    } else {
        echo json_encode(["message" => "Failed to add user"]);
    }

    $stmt->close();
} else {
    echo json_encode(["message" => "Invalid input"]);
}

$conn->close();
?>

এখানে POST রিকোয়েস্টের মাধ্যমে নতুন ইউজার ডেটা ডেটাবেসে ইনসার্ট করা হয়েছে।


PUT মেথড: ডেটা আপডেট করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// PUT রিকোয়েস্ট থেকে ডেটা নেওয়া
$data = json_decode(file_get_contents("php://input"), true);

// ইনপুট ভ্যালু যাচাই
if (isset($data['id']) && isset($data['name']) && isset($data['email']) && isset($data['age'])) {
    $id = $data['id'];
    $name = $data['name'];
    $email = $data['email'];
    $age = $data['age'];

    // প্যারামিটারাইজড কুয়েরি তৈরি
    $stmt = $conn->prepare("UPDATE users SET name = ?, email = ?, age = ? WHERE id = ?");
    $stmt->bind_param("ssii", $name, $email, $age, $id);

    // কুয়েরি এক্সিকিউট
    if ($stmt->execute()) {
        echo json_encode(["message" => "User updated successfully"]);
    } else {
        echo json_encode(["message" => "Failed to update user"]);
    }

    $stmt->close();
} else {
    echo json_encode(["message" => "Invalid input"]);
}

$conn->close();
?>

এখানে PUT রিকোয়েস্টের মাধ্যমে ইউজার ডেটা আপডেট করা হয়েছে।


DELETE মেথড: ডেটা ডিলিট করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// DELETE রিকোয়েস্ট থেকে ইউজার আইডি নেওয়া
$data = json_decode(file_get_contents("php://input"), true);
$id = isset($data['id']) ? $data['id'] : null;

if ($id) {
    // কুয়েরি তৈরি
    $stmt = $conn->prepare("DELETE FROM users WHERE id = ?");
    $stmt->bind_param("i", $id);

    // কুয়েরি এক্সিকিউট
    if ($stmt->execute()) {
        echo json_encode(["message" => "User deleted successfully"]);
    } else {
        echo json_encode(["message" => "Failed to delete user"]);
    }

    $stmt->close();
} else {
    echo json_encode(["message" => "Invalid input"]);
}

$conn->close();
?>

এখানে DELETE রিকোয়েস্টের মাধ্যমে ইউজার ডেটা ডিলিট করা হয়েছে।


MySQLi এবং REST API এর উপকারিতা

  1. নিরাপত্তা: প্যারামিটারাইজড কুয়েরি ব্যবহার করার ফলে SQL Injection আক্রমণ থেকে রক্ষা পাওয়া যায়।
  2. স্ট্যান্ডার্ডাইজড: REST API একটি স্ট্যান্ডার্ড প্রোটোকল, যা বিভিন্ন ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন ওয়েব, মোবাইল) থেকে সহজে ব্যবহার করা যায়।
  3. স্কেলেবিলিটি: REST API এবং MySQLi ব্যবহার করে অ্যাপ্লিকেশনগুলো দ্রুত স্কেল করা সম্ভব, কারণ API রিকোয়েস্ট/রেসপন্স দ্রুত এবং সিস্টেমের লোড কমাতে সাহায্য করে।

MySQLi এবং REST API একসাথে ব্যবহার করে ডেটাবেসের সাথে নিরাপদ, দ্রুত এবং কার্যকরী উপায়ে যোগাযোগ করা সম্ভব। এটি ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনগুলোর জন্য একটি শক্তিশালী ডেটা ইন্টারফেস তৈরি করতে সহায়তা করে।

Content added By

API (Application Programming Interface) একটি ওয়েব অ্যাপ্লিকেশন বা সিস্টেমের মধ্যে যোগাযোগের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে। যখন আপনি MySQLi (MySQL Improved) ব্যবহার করে একটি API তৈরি করেন, তখন নিরাপত্তা অত্যন্ত গুরুত্বপূর্ণ। আপনার API Endpoint সুরক্ষিত করতে, বিভিন্ন নিরাপত্তা ব্যবস্থা গ্রহণ করা উচিত যেমন ইনপুট ভ্যালিডেশন, SQL ইনজেকশন থেকে রক্ষা, এবং প্রপার অথেন্টিকেশন এবং অথোরাইজেশন ব্যবস্থা। নিচে MySQLi দিয়ে একটি সুরক্ষিত API Endpoint তৈরির প্রক্রিয়া ব্যাখ্যা করা হবে।


Secure API Endpoint তৈরি করার পদ্ধতি

1. MySQLi সংযোগ স্থাপন

API তৈরি করার প্রথম ধাপ হলো MySQLi দিয়ে ডাটাবেসের সাথে সংযোগ স্থাপন করা। সুরক্ষিত সংযোগের জন্য, ডাটাবেস পাসওয়ার্ড ও ইউজারনেম নিরাপদভাবে সংরক্ষণ করা উচিত, এবং কখনো ডাটাবেস ক্রেডেনশিয়াল হার্ডকোড করা উচিত নয়।

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// Create connection
$connection = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($connection->connect_error) {
    die("Connection failed: " . $connection->connect_error);
}
?>

2. API রিকোয়েস্ট ভ্যালিডেশন

API এর মাধ্যমে incoming রিকোয়েস্টের ইনপুট ভালোভাবে যাচাই করা গুরুত্বপূর্ণ। আপনি যাচাই করতে পারেন যে, রিকোয়েস্টে প্রয়োজনীয় তথ্য (যেমন প্যারামিটার) পাঠানো হয়েছে কিনা এবং তা সঠিক ফর্ম্যাটে আছে কিনা।

if (!isset($_GET['id'])) {
    echo json_encode(["error" => "ID is required"]);
    exit();
}

$id = $_GET['id'];
if (!is_numeric($id)) {
    echo json_encode(["error" => "Invalid ID format"]);
    exit();
}

3. Prepared Statements ব্যবহার করা

SQL ইনজেকশন থেকে রক্ষা পেতে, সর্বদা Prepared Statements ব্যবহার করা উচিত। এর মাধ্যমে, ব্যবহারকারী ইনপুট ডেটা কোডের সাথে মিলানো না হয়ে, এটি নিরাপদভাবে ডাটাবেসে ইনসার্ট বা রিড করা হয়।

$id = $_GET['id'];

$stmt = $connection->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    $data = $result->fetch_assoc();
    echo json_encode($data);
} else {
    echo json_encode(["error" => "No records found"]);
}

$stmt->close();

4. Authentication এবং Authorization

API Endpoint সুরক্ষিত করতে, আপনি অথেন্টিকেশন (authentication) এবং অথোরাইজেশন (authorization) ব্যবস্থা ব্যবহার করতে পারেন। একটি জনপ্রিয় পদ্ধতি হলো JWT (JSON Web Tokens) ব্যবহার করে টোকেন ভিত্তিক অথেন্টিকেশন।

4.1 JWT Authentication ব্যবহার

JWT টোকেন তৈরি ও যাচাই করতে নিচের কোড ব্যবহার করা যেতে পারে। প্রথমে, ব্যবহারকারী লগ ইন করার পর একটি টোকেন জেনারেট করা হবে এবং প্রতিটি API রিকোয়েস্টে সেটি পাঠাতে হবে।

// JWT Library ব্যবহার করা হতে পারে
require_once('vendor/autoload.php');
use \Firebase\JWT\JWT;

// Secret key
$secretKey = "your-secret-key";

// Token তৈরি করা
$issuedAt = time();
$expirationTime = $issuedAt + 3600;  // 1 hour expiration
$payload = array(
    "iat" => $issuedAt,
    "exp" => $expirationTime,
    "sub" => $user_id
);

$jwt = JWT::encode($payload, $secretKey);
echo json_encode(["token" => $jwt]);
4.2 JWT টোকেন যাচাই করা

এখন, প্রতিটি API রিকোয়েস্টে প্রাপ্ত JWT টোকেন যাচাই করা হবে।

$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
    $jwt = str_replace("Bearer ", "", $headers['Authorization']);
} else {
    echo json_encode(["error" => "Authorization token missing"]);
    exit();
}

try {
    $decoded = JWT::decode($jwt, $secretKey, array('HS256'));
    $user_id = $decoded->sub;  // User ID from token
} catch (Exception $e) {
    echo json_encode(["error" => "Invalid or expired token"]);
    exit();
}

5. Response Formatting

API এর মাধ্যমে রেসপন্স যথাযথভাবে ফরম্যাট করা উচিত। JSON ফরম্যাট ব্যবহার করা সাধারণত ভালো অভ্যাস। এটি অন্যান্য ক্লায়েন্ট সিস্টেমের জন্য সহজতর এবং বোধগম্য।

header('Content-Type: application/json');
echo json_encode($response);

6. CORS (Cross-Origin Resource Sharing)

API যদি বিভিন্ন ডোমেইনে কাজ করে (যেমন, ফ্রন্টএন্ড এবং ব্যাকএন্ড আলাদা সার্ভারে), তবে CORS (Cross-Origin Resource Sharing) কনফিগারেশন করা প্রয়োজন। CORS সক্রিয় করার জন্য নিম্নলিখিত হেডার ব্যবহার করা যেতে পারে:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");

নিরাপত্তা টিপস

  1. HTTPS ব্যবহার করুন: API এর মাধ্যমে কোনো সংবেদনশীল ডেটা পরিবহণ হলে, অবশ্যই HTTPS প্রটোকল ব্যবহার করুন। এতে ডেটা এন্ড-টু-এন্ড এনক্রিপ্টেড থাকে।
  2. SQL Injection রোধ করুন: সর্বদা Prepared Statements ব্যবহার করুন এবং ইনপুট যাচাই করে নিন।
  3. Input Validation: ইনপুটে অযাচিত ক্যারেক্টার বা ডেটা ঢোকানো থেকে রক্ষা করতে ভ্যালিডেশন প্রয়োজন। যেমন, ব্যবহারকারী একটি ইমেইল এড্রেস দিলে তা সঠিক ফরম্যাটে রয়েছে কিনা চেক করুন।
  4. Rate Limiting: API রিকোয়েস্টের হার সীমিত করুন যেন কোনো নির্দিষ্ট সময়ের মধ্যে একাধিক রিকোয়েস্ট একসাথে না চলে যায়।
  5. Error Handling: কখনোই API রেসপন্সে সরাসরি ডাটাবেসের ত্রুটি বা কনফিগারেশন বার্তা প্রদর্শন করবেন না। এতে নিরাপত্তা ঝুঁকি সৃষ্টি হতে পারে। এর পরিবর্তে কাস্টম ত্রুটি বার্তা ব্যবহার করুন।

MySQLi এর সাথে নিরাপদ API Endpoint তৈরি করা একটি গুরুত্বপূর্ণ প্রক্রিয়া এবং এটি সঠিকভাবে করা হলে আপনার অ্যাপ্লিকেশনটি নিরাপদ এবং শক্তিশালী হয়ে উঠবে। Proper authentication, input validation, and using prepared statements are the key to building secure API endpoints.

Content added By

মাইএসকিউএলআই (MySQLi) ব্যবহার করে ডেটাবেস থেকে ডেটা প্রাপ্তির পর JSON এবং XML ফরম্যাটে API Response তৈরি করা যায়। JSON এবং XML উভয়ই ডেটা আদান-প্রদান এবং API ইন্টিগ্রেশনের জন্য জনপ্রিয় ফরম্যাট। এখানে, আমরা দেখব কীভাবে মাইএসকিউএলআই এর মাধ্যমে JSON এবং XML রেসপন্স তৈরি করা হয়।

১. JSON API Response তৈরি

JSON (JavaScript Object Notation) হল একটি লাইটওয়েট ডেটা-ফরম্যাট যা প্রধানত ওয়েব অ্যাপ্লিকেশনগুলিতে ব্যবহার হয়। PHP তে JSON রেসপন্স তৈরি করা সহজ এবং ডেটাবেস থেকে পাওয়া ডেটাকে JSON ফরম্যাটে রূপান্তর করা যায়।

MySQLi থেকে JSON রেসপন্স তৈরি করা

<?php
// MySQLi কানেকশন
$mysqli = new mysqli("localhost", "username", "password", "database_name");

// কানেকশন ত্রুটি পরীক্ষা
if ($mysqli->connect_error) {
    die("কানেকশন ত্রুটি: " . $mysqli->connect_error);
}

// ডেটাবেস থেকে ডেটা ফেচ করা
$query = "SELECT id, name, email FROM users";
$result = $mysqli->query($query);

// ডেটা অ্যারে তৈরি
$data = array();

while ($row = $result->fetch_assoc()) {
    $data[] = $row;
}

// JSON রেসপন্স তৈরি
header('Content-Type: application/json');
echo json_encode($data);

// কানেকশন বন্ধ
$mysqli->close();
?>

JSON রেসপন্সের উদাহরণ

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane Smith",
        "email": "jane@example.com"
    }
]

২. XML API Response তৈরি

XML (Extensible Markup Language) একটি স্ট্যান্ডার্ড ডেটা ফরম্যাট যা ডেটা সঞ্চয় এবং পরিবহণে ব্যবহৃত হয়। XML API রেসপন্স তৈরি করতে PHP তে ডেটাবেসের ডেটা XML ট্যাগে রূপান্তর করা হয়।

MySQLi থেকে XML রেসপন্স তৈরি করা

<?php
// MySQLi কানেকশন
$mysqli = new mysqli("localhost", "username", "password", "database_name");

// কানেকশন ত্রুটি পরীক্ষা
if ($mysqli->connect_error) {
    die("কানেকশন ত্রুটি: " . $mysqli->connect_error);
}

// ডেটাবেস থেকে ডেটা ফেচ করা
$query = "SELECT id, name, email FROM users";
$result = $mysqli->query($query);

// XML ডকুমেন্ট শুরু
header("Content-Type: text/xml");
$xml = new SimpleXMLElement('<users/>');

// ডেটা XML এ যোগ করা
while ($row = $result->fetch_assoc()) {
    $user = $xml->addChild('user');
    $user->addChild('id', $row['id']);
    $user->addChild('name', $row['name']);
    $user->addChild('email', $row['email']);
}

// XML রেসপন্স তৈরি
echo $xml->asXML();

// কানেকশন বন্ধ
$mysqli->close();
?>

XML রেসপন্সের উদাহরণ

<users>
    <user>
        <id>1</id>
        <name>John Doe</name>
        <email>john@example.com</email>
    </user>
    <user>
        <id>2</id>
        <name>Jane Smith</name>
        <email>jane@example.com</email>
    </user>
</users>

৩. JSON এবং XML রেসপন্সের মধ্যে পার্থক্য

  • JSON: অধিকাংশ ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনে ব্যবহৃত হয়। এটি হালকা ও সহজে পার্সযোগ্য (parse-able)।
  • XML: কমপ্লেক্স ডেটা কাঠামো বা ডকুমেন্ট সুরক্ষিত পরিবহণের জন্য ব্যবহার করা হয়। এটি একটু ভারী এবং তুলনামূলকভাবে পার্সিং জটিল।

৪. API রেসপন্সের Content-Type সেট করা

এটি নিশ্চিত করার জন্য যে API রেসপন্সটি সঠিকভাবে ক্লায়েন্ট দ্বারা গ্রহণ করা হচ্ছে, আপনাকে সঠিক Content-Type হেডার সেট করতে হবে।

  • JSON:

    header('Content-Type: application/json');
    
  • XML:

    header('Content-Type: text/xml');
    

সারসংক্ষেপ

মাইএসকিউএলআই (MySQLi) এর মাধ্যমে ডেটাবেস থেকে প্রাপ্ত ডেটা JSON বা XML ফরম্যাটে রূপান্তর করে API রেসপন্স তৈরি করা সহজ। JSON সাধারণত বেশি ব্যবহৃত হয় ওয়েব ও মোবাইল অ্যাপ্লিকেশনগুলিতে, যখন XML আরও বড় এবং জটিল ডেটা কাঠামোর জন্য উপযুক্ত। API রেসপন্সের Content-Type সঠিকভাবে সেট করা গুরুত্বপূর্ণ, যাতে ক্লায়েন্ট ঠিকভাবে ডেটা গ্রহণ করতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...