30 मिनट में PHP पर REST API कैसे लिखें
अपना खुद का REST API बनाना आधुनिक backend-डेवलपर के प्रमुख कौशलों में से एक है। कई शुरुआती सोचते हैं कि इसके लिए Laravel या Symfony जैसे भारी फ्रेमवर्क की जरूरत है। वास्तव में, शुद्ध PHP पर बेसिक REST API सचमुच आधे घंटे में लिखा जा सकता है। इस लेख में हम RESTful सेवा बनाने की चरण-दर-चरण प्रक्रिया समझेंगे, जिसका उपयोग आप मोबाइल ऐप से लेकर सिंगल-पेज साइटों तक, वास्तविक प्रोजेक्ट्स में तुरंत कर सकते हैं।
हम किसी तीसरे पक्ष की लाइब्रेरी का उपयोग नहीं करेंगे। सारा कोड वैनिला PHP में लिखा जाएगा। आप HTTP अनुरोधों को संसाधित करना, JSON के साथ काम करना, रूटिंग व्यवस्थित करना और सही HTTP स्थितियाँ लौटाना सीखेंगे। चलिए शुरू करते हैं!
1. प्रोजेक्ट संरचना और तैयारी
कोड लिखने से पहले, एक सरल फ़ाइल संरचना बनाते हैं। हमारे API के लिए केवल कुछ फ़ाइलों की आवश्यकता होगी:
index.php— एंट्री पॉइंट, जो सभी अनुरोधों को संभालेगा;.htaccess— सभी अनुरोधों को index.php पर रीडायरेक्ट करने के लिए (यदि आप Apache का उपयोग करते हैं);config.php— डेटाबेस कनेक्शन सेटिंग्स वाली फ़ाइल (वैकल्पिक)।
एक प्रोजेक्ट फ़ोल्डर बनाएं, उदाहरण के लिए, my-rest-api, और इन फ़ाइलों को वहाँ रखें।
.htaccess सेटअप
ताकि सभी अनुरोध हमारी मुख्य स्क्रिप्ट तक पहुँचें, प्रोजेक्ट की रूट में .htaccess फ़ाइल बनाएं:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php [QSA,L]यह कोड उन सभी अनुरोधों को रीडायरेक्ट करता है जो वास्तविक फ़ाइलों या फ़ोल्डरों की ओर नहीं जाते, index.php पर। QSA पैरामीटर query-स्ट्रिंग को संरक्षित करता है।
2. रूटिंग और अनुरोध प्रसंस्करण
अब मुख्य फ़ाइल — index.php लिखते हैं। यह अनुरोध प्राप्त करेगा, HTTP विधि (GET, POST, PUT, DELETE) और पथ निर्धारित करेगा, और फिर आवश्यक हैंडलर को कॉल करेगा।
बेसिक रूटिंग
एक सरल उदाहरण से शुरू करते हैं। रूट्स की एक array और उन्हें संसाधित करने के लिए एक फ़ंक्शन बनाएं:
<?phpheader('Content-Type: application/json');header('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');header('Access-Control-Allow-Headers: Content-Type');
$method = $_SERVER['REQUEST_METHOD'];$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// अंत में से स्लैश हटाएं$path = rtrim($path, '/');
// सरल रूटिंगswitch (true) { case $path === '/api/users' && $method === 'GET': getUsers(); break; case $path === '/api/users' && $method === 'POST': createUser(); break; case preg_match('/^\\/api\\/users\\/(\\d+)$/', $path, $matches) && $method === 'GET': getUser($matches[1]); break; default: http_response_code(404); echo json_encode(['error' => 'Route not found']); break;}
function getUsers() { // स्टब echo json_encode(['users' => ['Alice', 'Bob', 'Charlie']]);}
function getUser($id) { echo json_encode(['user' => ['id' => $id, 'name' => 'User ' . $id]]);}
function createUser() { $input = json_decode(file_get_contents('php://input'), true); echo json_encode(['message' => 'User created', 'data' => $input]);}?>कुछ महत्वपूर्ण बिंदुओं पर ध्यान दें:
- हम हेडर
Content-Type: application/jsonसेट कर रहे हैं — सभी प्रतिक्रियाएँ JSON में होंगी। - CORS हेडर किसी भी डोमेन से अनुरोधों की अनुमति देते हैं (डेवलपमेंट के लिए)।
- POST/PUT अनुरोध का बॉडी
php://inputके माध्यम से पढ़ा जाता है।
3. डेटाबेस के साथ काम करना
एक वास्तविक API शायद ही कभी स्टब्स के साथ काम करता है। PDO के माध्यम से MySQL कनेक्शन जोड़ें। config.php फ़ाइल बनाएं:
<?phpdefine('DB_HOST', 'localhost');define(
```