اسکریپت RESTful API CRUD با استفاده از PHP و MySQL پایگاه داده


در دنیای توسعه وب و ساخت برنامه‌های تحت وب، ارتباط بین کلاینت و سرور نقش بسیار مهمی ایفا می‌کند. یکی از بهترین و رایج‌ترین روش‌ها برای برقراری این ارتباط، استفاده از APIهای RESTful است. در این مقاله، قصد داریم به صورت کامل و جامع درباره نحوه ساخت یک اسکریپت RESTful API CRUD با بهره‌گیری از زبان برنامه‌نویسی PHP و پایگاه داده MySQL صحبت کنیم، و تمامی جزئیات مورد نیاز برای توسعه و پیاده‌سازی این نوع API را شرح دهیم.
مقدمه
در ابتدا، باید بدانیم که API مخفف Application Programming Interface است و به مجموعه‌ای از قواعد و ابزارهایی گفته می‌شود که اجازه می‌دهند نرم‌افزارهای مختلف با یکدیگر ارتباط برقرار کنند. REST یا Representational State Transfer، یک سبک معماری است که به توسعه APIهای وب کمک می‌کند. APIهای RESTful بر اساس استانداردهای HTTP کار می‌کنند و عملیات مختلفی مانند ایجاد، خواندن، بروزرسانی و حذف (CRUD) را به سادگی و به صورت منظم انجام می‌دهند.
در این مقاله، ما قصد داریم یک API ساده اما قدرتمند با قابلیت‌های کامل CRUD را پیاده‌سازی کنیم، که بتواند داده‌های یک جدول خاص در پایگاه داده MySQL را مدیریت کند. برای این کار، از زبان PHP بهره می‌بریم، زیرا PHP یکی از محبوب‌ترین زبان‌ها در توسعه وب است و به راحتی با MySQL کار می‌کند.
ساختار کلی پروژه
قبل از شروع، باید بدانیم که ساخت یک API RESTful نیازمند طراحی مناسب است. در اینجا، ما یک ساختار ساده اما منظم برای پروژه در نظر گرفتیم:
  1. فایل‌های PHP برای هر عملیات خاص (مثلاً create.php، read.php، update.php، delete.php)

  1. یک فایل مرکزی برای مدیریت درخواست‌ها و هدایت آنها به عملیات مربوطه (مثلاً index.php یا api.php)

  1. اتصال به پایگاه داده و مدیریت ارتباط با MySQL

  1. قالب‌بندی پاسخ‌ها در قالب JSON برای سهولت در خواندن و پردازش سمت کلاینت
    در ادامه، هر قسمت را به تفصیل بررسی می‌کنیم.
    ایجاد پایگاه داده و جدول
    برای شروع، باید یک پایگاه داده در MySQL ایجاد کنیم و یک جدول مناسب برای ذخیره داده‌ها طراحی کنیم. فرض کنیم قصد داریم اطلاعات کاربران را مدیریت کنیم، پس جدول ما می‌تواند شامل فیلدهای id، name، email و created_at باشد.
    کد SQL برای ساخت جدول:
    sql  

CREATE DATABASE api_db;
USE api_db;
CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(100) NOT NULL,

email VARCHAR(100) NOT NULL UNIQUE,

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);


در اینجا، جدول users با فیلدهای مختلف ساخته شده است. حالا می‌توانیم عملیات CRUD را بر روی این جدول پیاده‌سازی کنیم.
اتصال به پایگاه داده در PHP
برای ارتباط با پایگاه داده، یک فایل جداگانه با نام db.php می‌سازیم که حاوی کدهای اتصال است. این روش، باعث می‌شود کدهای مربوط به اتصال در همه فایل‌ها قابل استفاده باشد و نگهداری آن آسان‌تر شود.
کد نمونه:
php  

<?php

$host = "localhost";

$db_name = "api_db";

$username = "root";

$password = "";
try {

$conn = new PDO("mysql:host=$host;dbname=$db_name", $username, $password);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $exception) {

echo json_encode(["error" => $exception->getMessage()]);

die();

}

?>


در این بخش، از PDO بهره می‌گیریم چون امنیت و انعطاف‌پذیری بیشتری نسبت به تابع mysqli دارد.
پیاده‌سازی عملیات CRUD
حالا نوبت به نوشتن اسکریپت‌های مربوط به عملیات CRUD می‌رسد. هر عملیات در یک فایل جداگانه قرار می‌گیرد و درخواست‌های HTTP مربوط به آن عملیات را مدیریت می‌کند.
  1. ایجاد (Create)
    در فایل create.php، درخواست‌های POST را می‌پذیریم و داده‌های جدید را در جدول insert می‌کنیم.
    کد نمونه:
    php  

<?php

include 'db.php';
$data = json_decode(file_get_contents("php://input"), true);
if(!empty($data['name']) && !empty($data['email'])) {

$name = $data['name'];

$email = $data['email'];
$query = "INSERT INTO users (name, email) VALUES (:name, :email)";

$stmt = $conn->prepare($query);

$stmt->bindParam(':name', $name);

$stmt->bindParam(':email', $email);
if($stmt->execute()) {

echo json_encode(["message" => "User created successfully."]);

} else {

echo json_encode(["error" => "Failed to create user."]);

}

} else {

echo json_encode(["error" => "Invalid input."]);

}

?&g... ← ادامه مطلب در magicfile.ir