PHP में 30 मिनट में REST API कैसे लिखें: चरण-दर-चरण मार्गदर्शिका

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में 30 मिनट में REST API कैसे लिखें



REST API (Representational State Transfer) नेटवर्क पर वितरित एप्लिकेशन घटकों के बीच इंटरैक्शन की एक आर्किटेक्चरल शैली है। आधुनिक वेब डेवलपमेंट में, REST API मोबाइल एप्लिकेशन, SPA (Single Page Application) और माइक्रोसर्विसेज के लिए बैकएंड बनाने का मानक है। इस लेख में, हम दिखाएंगे कि PHP में केवल 30 मिनट में एक सरल लेकिन पूरी तरह से काम करने वाला REST API कैसे लिखा जाए।



हम CRUD-ऑपरेशन (Create, Read, Update, Delete) के समर्थन के साथ कार्य सूची (Todo List) प्रबंधित करने के लिए एक API बनाएंगे। आप सीखेंगे कि रूटिंग कैसे व्यवस्थित करें, JSON अनुरोधों को कैसे संसाधित करें और MySQL डेटाबेस कैसे कनेक्ट करें।



पर्यावरण की तैयारी



काम करने के लिए आपको आवश्यकता होगी:

  • PHP 7.4+ के समर्थन के साथ Apache या Nginx वेब सर्वर
  • MySQL या MariaDB
  • कोड एडिटर (VS Code, PhpStorm)
  • API परीक्षण के लिए Postman या curl


प्रोजेक्ट संरचना बनाएं:

todo-api/├── index.php          # प्रवेश बिंदु (राउटर)├── config.php         # डेटाबेस कनेक्शन सेटिंग्स├── api/│   └── tasks.php      # कार्यों के साथ काम करने का तर्क└── .htaccess          # URL पुनर्लेखन सेटिंग्स


चरण 1: .htaccess और प्रवेश बिंदु सेट करना



सभी अनुरोधों को index.php पर रीडायरेक्ट करने के लिए .htaccess फ़ाइल बनाएं:

RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php?url=$1 [QSA,L]


अब हम index.php बनाते हैं — हमारा मुख्य राउटर:

<?phpheader("Content-Type: application/json; charset=UTF-8");header("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");header("Access-Control-Allow-Headers: Content-Type, Authorization");

// प्रीफ्लाइट अनुरोधों का प्रसंस्करणif ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit();}

require_once 'config.php';require_once 'api/tasks.php';

$url = isset($_GET['url']) ? rtrim($_GET['url'], '/') : '';$urlParts = explode('/', $url);$resource = $urlParts[0] ?? '';$id = $urlParts[1] ?? null;

switch ($resource) { case 'tasks': $tasks = new Tasks(); echo $tasks->handleRequest($_SERVER['REQUEST_METHOD'], $id); break; default: http_response_code(404); echo json_encode(["message" => "Resource not found"]); break;}?>


चरण 2: डेटाबेस से कनेक्शन



कनेक्शन सेटिंग्स के साथ config.php बनाएं:

<?phpclass Database {    private $host = "localhost";    private $db_name = "todo_api";    private $username = "root";    private $password = "";    public $conn;

public function getConnection() { $this->conn = null; try { $this->conn = new PDO( "mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password ); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { http_response_code(500); echo json_encode(["message" => "Database connection error"]); exit(); } return $this->conn; }}?>


MySQL में तालिका बनाएं:

CREATE DATABASE todo_api;USE todo_api;

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, description TEXT, status ENUM('pending', 'completed') DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);


चरण 3: CRUD-ऑपरेशन का कार्यान्वयन



मुख्य तर्क के साथ api/tasks.php फ़ाइल बनाएं:

<

ब्लॉग

पुस्तक अनुशंसाएँ