Postman से Curl में बदलाव: PHP में रूपांतरण की प्रक्रिया

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

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

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

एक क्लिक का जादू: Postman कैसे Curl में बदलता है?

\n\n

जो कोई भी API के साथ काम करता है, वह इस स्थिति को जानता है: आपने Postman में एक परफेक्ट रिक्वेस्ट सेट किया, सब कुछ ठीक चल रहा है, और फिर आपको यह रिक्वेस्ट अपने सहकर्मी को भेजनी है या PHP स्क्रिप्ट में डालनी है। आप "Code" पर क्लिक करते हैं → cURL चुनते हैं → और एक तैयार कमांड मिल जाती है। जादू? नहीं, यह सिर्फ गणित और पार्सिंग है।

\n\n

लेकिन क्या होगा अगर आपको इस प्रक्रिया को ऑटोमेट करना हो? या अपना खुद का कन्वर्टर बनाना हो जो JSON रिक्वेस्ट को एक्जीक्यूटेबल curl में बदल दे? आज हम इस मैकेनिज्म को समझेंगे और PHP में एक फंक्शन लिखेंगे जो वही करता है जो Postman करता है — बस अपने हाथों से।

\n\n

यह सामग्री न केवल backend डेवलपर्स के लिए, बल्कि उन सभी के लिए उपयोगी है जो HTTP रिक्वेस्ट को गहराई से समझना चाहते हैं और उन्हें एक फॉर्मेट से दूसरे में बदलना चाहते हैं। चलिए शुरू करते हैं!

\n\n

वास्तव में "Postman to Curl" क्या है?

\n\n

जब आप Postman में एक्सपोर्ट बटन दबाते हैं, तो प्रोग्राम एक सरल लेकिन महत्वपूर्ण काम करता है: यह रिक्वेस्ट का स्ट्रक्चर्ड विवरण (मेथड, URL, हेडर, बॉडी) लेता है और इसे कमांड लाइन सिंटैक्स में बदल देता है।

\n\n

असल में, यह रिक्वेस्ट का रूपांतरण है — एक प्रस्तुति से दूसरी में। Postman रिक्वेस्ट को अपने इंटरनल JSON मॉडल में स्टोर करता है। जब आप cURL चुनते हैं, तो यह इस मॉडल पर इटरेट करता है और एक स्ट्रिंग बनाता है जैसे:

\n\n
curl --request POST \\\n  --url https://api.example.com/data \\\n  --header 'Content-Type: application/json' \\\n  --data '{"key":"value"}'
\n\n

सब कुछ सरल है। लेकिन आइए देखें कि यह कोड स्तर पर कैसे काम करता है।

\n\n

PHP में अपना खुद का कन्वर्टर बनाएं

\n\n

हम एक क्लास PostmanToCurl लिखेंगे जो रिक्वेस्ट पैरामीटर्स के साथ एक एसोसिएटिव ऐरे लेता है और एक तैयार curl कमांड स्ट्रिंग लौटाता है। यह हमारा मिनी-कन्वर्जन इंजन होगा।

\n\n

चरण 1. इनपुट डेटा की संरचना तय करें

\n\n

सरलता के लिए, हम मान लेते हैं कि इनपुट में ये कीज़ हैं: method, url, headers (एसोसिएटिव ऐरे), body (स्ट्रिंग या ऐरे)। यह न्यूनतम मॉडल है जो Postman उपयोग करता है।

\n\n
<?php\n\n$request = [\n    'method'  => 'POST',\n    'url'     => 'https://api.example.com/users',\n    'headers' => [\n        'Content-Type' => 'application/json',\n        'Authorization' => 'Bearer token123'\n    ],\n    'body'    => json_encode(['name' => 'John', 'email' => 'john@example.com'])\n];
\n\n

चरण 2. असेंबली फंक्शन लिखें

\n\n

मुख्य लॉजिक: मेथड, URL, हेडर, बॉडी लें और उन्हें एक कमांड में जोड़ें। कोट्स और स्पेशल कैरेक्टर्स को एस्केप करने पर ध्यान दें।

\n\n
function generateCurlCommand(array $request): string {\n    $parts = ['curl'];\n\n    // 1. मेथड (अगर GET नहीं है)\n    if (strtoupper($request['method']) !== 'GET') {\n        $parts[] = '--request ' . strtoupper($request['method']);\n    }\n\n    // 2. URL\n    $parts[] = '--url ' . escapeshellarg($request['url']);\n\n    // 3. हेडर\n    foreach ($request['headers'] as $key => $value) {\n        $parts[] = '--header ' . escapeshellarg($key . ': ' . $value);\n    }\n\n    // 4. रिक्वेस्ट बॉडी\n    if (!empty($request['body'])) {\n        $parts[] = '--data ' . escapeshellarg($request['body']);\n    }\n\n    return implode(" \\\\\\n  ", $parts);\n}
\n\n

फंक्शन escapeshellarg आपका सबसे अच्छा दोस्त है। यह कोट्स को सही तरीके से एस्केप करता है, कमांड को टूटने और संभावित इंजेक्शन से बचाता है।

\n\n

अंदर की बात: Postman वास्तव में क्या करता है

\n\n

अब जब हमारे पास काम करने वाला कोड है, तो आइए देखें कि Postman (और हमारा कन्वर्टर) रिक्वेस्ट के प्रत्येक एलिमेंट को कैसे प्रोसेस करता है।

\n\n

1. HTTP मेथड

\n

Postman जांचता है कि मेथड GET से अलग है या नहीं। अगर हाँ, तो यह --request फ्लैग जोड़ता है। GET के लिए क्यों नहीं? क्योंकि cURL डिफ़ॉल्ट रूप से GET रिक्वेस्ट करता है, जब तक कि अन्यथा निर्दिष्ट न हो।

ब्लॉग

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