30 मिनट में PHP पर REST API कैसे लिखें: व्यावहारिक मार्गदर्शिका

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

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

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

परिचय: PHP पर REST API क्यों तेज़ और सरल है

\n\n

REST (Representational State Transfer) एक आर्किटेक्चरल शैली है जो वेब सेवाओं के निर्माण के लिए मानक बन गई है। कई नौसिखिए डेवलपर्स API को लागू करने से डरते हैं, इसे एक जटिल कार्य मानते हैं। वास्तव में, यदि सही संरचना का पालन किया जाए तो PHP पर पूर्ण REST API केवल 30 मिनट में लिखा जा सकता है।

\n\n

इस मार्गदर्शिका में, हम कार्यों की सूची (To-Do List) के प्रबंधन के लिए एक सरल लेकिन कार्यशील API बनाएंगे। आप HTTP विधियों (GET, POST, PUT, DELETE) को संभालना, JSON के साथ काम करना और रूटिंग बनाना सीखेंगे। सभी कोड उदाहरण चलाने के लिए तैयार हैं।

\n\n

पढ़ने के बाद आपको क्या मिलेगा:

\n
    \n
  • बिना फ्रेमवर्क के शुद्ध PHP पर कार्यशील REST API
  • \n
  • RESTful आर्किटेक्चर के सिद्धांतों की समझ
  • \n
  • प्रोजेक्ट को स्केल करने के लिए तैयार संरचना
  • \n
\n\n

चरण 1: प्रोजेक्ट संरचना और डेटाबेस सेटअप

\n\n

शुरू करने के लिए, हम एक सरल फ़ोल्डर संरचना बनाएंगे। हमें रूटिंग के लिए केवल एक PHP फ़ाइल (index.php) और डेटाबेस सेटिंग्स वाली एक फ़ाइल (config.php) की आवश्यकता होगी।

\n\n

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

\n
rest-api-todo/\n│\n├── index.php        (मुख्य राउटर)\n├── config.php       (DB कनेक्शन)\n└── .htaccess        (URL रीराइट सेटअप)
\n\n

MySQL डेटाबेस बनाना

\n

phpMyAdmin या कंसोल के माध्यम से यह SQL क्वेरी चलाएँ:

\n
CREATE DATABASE todo_api;\n\nUSE todo_api;\n\nCREATE TABLE tasks (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    title VARCHAR(255) NOT NULL,\n    completed BOOLEAN DEFAULT FALSE,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\nINSERT INTO tasks (title) VALUES \n('PHP सीखें'), \n('REST API लिखें'), \n('लेख प्रकाशित करें');
\n\n

config.php फ़ाइल

\n
<?php\n// config.php\nheader('Content-Type: application/json');\nheader('Access-Control-Allow-Origin: *');\nheader('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');\nheader('Access-Control-Allow-Headers: Content-Type');\n\n$host = 'localhost';\n$dbname = 'todo_api';\n$username = 'root';\n$password = '';\n\ntry {\n    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);\n    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n} catch(PDOException $e) {\n    echo json_encode(['error' => 'DB कनेक्शन त्रुटि: ' . $e->getMessage()]);\n    exit;\n}\n?>
\n\n

चरण 2: एकल प्रवेश बिंदु (राउटर) बनाना

\n\n

index.php फ़ाइल में, हम रूटिंग लागू करेंगे। यह URL को संसाधित करेगा और अनुरोधों को संबंधित फ़ंक्शन पर रीडायरेक्ट करेगा।

\n\n

index.php फ़ाइल (पूर्ण कोड)

\n
<?php\nrequire_once 'config.php';\n\n$method = $_SERVER['REQUEST_METHOD'];\n$request = explode('/', trim($_SERVER['PATH_INFO'] ?? '/', '/'));\n\n// कार्य का ID निर्धारित करें, यदि दिया गया है\n$id = isset($request[0]) && is_numeric($request[0]) ? (int)$request[0] : null;\n\n// विभिन्न HTTP विधियों को संभालना\nswitch($method) {\n    case 'GET':\n        if ($id) {\n            getTask($pdo, $id);\n        } else {\n            getTasks($pdo);\n        }\n        break;\n        \n    case 'POST':\n        createTask($pdo);\n        break;\n        \n    case 'PUT':\n        if ($id) {\n            updateTask($pdo, $id);\n        } else {\n            http_response_code(400);\n            echo json_encode(['error' => 'कार्य ID निर्दिष्ट नहीं है']);\n        }\n        break;\n        \n    case 'DELETE':\n        if ($id) {\n            deleteTask($pdo, $id);\n        } else {\n            http_response_code(400);\n            echo json_encode(['error' => 'कार्य ID निर्दिष्ट नहीं है']);\n        }\n        break;\n        \n    default:\n        http_response_code(405);\n        echo json_encode(['error' => 'विधि समर्थित नहीं है']);\n}\n\n// --- फ़ंक्शन का कार्यान्वयन ---\n\nfunction getTasks($pdo) {\n    $stmt = $pdo->query("SELECT * FROM tasks ORDER BY created_a                

ब्लॉग

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