API परीक्षणबाट प्रोजेक्ट कोडसम्म

curl बाट Python, JavaScript वा PHP कोड

परीक्षण गरिसकेको API अनुरोधलाई आफ्नो प्रोजेक्टमा लैजानुहोस्। curl कमान्ड टाँस्नुहोस्, भाषा छान्नुहोस् र कोड चलाउनुअघि अनुरोधका विवरण जाँच्नुहोस्।

curlअनुरोधको कोड
ब्राउजरमै रूपान्तरण
01

हेडर र बडीसहित एउटा HTTP अनुरोध टाँस्नुहोस्। POSIX उद्धरण चिह्न र ब्याकस्ल्यासबाट लाइन जोड्ने तरिका समर्थित छन्।

POSTexample.comहेडर संख्या: 3
02
async function main() {
  const response = await fetch("https://example.com/api/messages", {
    method: "POST",
    headers: [
      ["Authorization", "Bearer YOUR_TOKEN"],
      ["Content-Type", "application/json"],
      ["Accept", "application/json"]
    ],
    body: "{\"message\":\"Hello from curl\",\"enabled\":true}",
    redirect: "manual",
    credentials: "omit"
  });
  console.log(response.status);
  console.log(await response.text());
}

main().catch(console.error);

ब्राउजर Fetch वा Node.js 18+

चलाउनुअघि

  • रूपान्तरणले अनुरोध पठाउँदैन। कोडमा दिइएको URL, हेडर र प्रमाणीकरण विवरण रहन्छन्; साझा गर्नुअघि जाँच्नुहोस्।
  • ब्राउजर Fetch मा CORS लागू हुन्छ। credentials: omit ले cookie स्वतः पठाउँदैन; आवश्यक भए प्रमाणीकरण विवरण सेट गर्नुहोस्। म्यानुअल redirect बाट opaque response आउन सक्छ।

खाता चाहिँदैन, कमान्ड चलाइँदैन। इनपुट ब्राउजरमै प्रशोधन हुन्छ।

चलिरहेको API अनुरोधलाई स्क्रिप्टमा लैजानुहोस्

API को दस्तावेज वा DevTools बाट लिएको curl कमान्डले अनुरोध दोहोर्‍याउन सजिलो बनाउँछ। त्यही अनुरोधलाई Python स्क्रिप्ट वा वेब एपमा प्रयोग गर्दा URL, हेडर र बडी सम्बन्धित लाइब्रेरीको ढाँचामा राख्नुपर्छ। यो उपकरणले त्यसका लागि कोड तयार गर्छ र चलाउने वातावरणमा ध्यान दिनुपर्ने कुरा देखाउँछ।

curl to Python वा JavaScript कसरी गर्ने?

एउटा पूरा HTTP वा HTTPS URL भएको curl कमान्ड टाँस्नुहोस्। भाषा छानेपछि विधि, हेडर र बडी जाँचेर कोड कपी वा डाउनलोड गर्नुहोस्। रूपान्तरण ब्राउजरमै हुन्छ; यस क्रममा API लाई अनुरोध पठाइँदैन।

खाली ठाउँ भएका मानका उद्धरण चिह्न नहटाउनुहोस्। DevTools बाट कपी गर्दा bash ढाँचा छान्नुहोस्। Shell variable र command substitution लाई पहिल्यै वास्तविक मानले बदल्नुहोस्। उपकरणले स्थानीय फाइल पढ्दैन; फाइल अपलोड, multipart फारम र असमर्थित विकल्प आफैँ मिलाउनुपर्छ।

कुन आउटपुट आफ्नो प्रोजेक्टका लागि उपयुक्त हुन्छ?

Python ले Requests प्रयोग गर्छ, जसलाई pip install requests बाट स्थापना गर्न सकिन्छ। पाठ बडी UTF-8 बाइटमा पठाइन्छ। PHP का लागि cURL एक्सटेन्सन चाहिन्छ। JavaScript आउटपुटले ब्राउजर वा Fetch समर्थित Node.js मा Fetch प्रयोग गर्छ।

JSON लाई फेरि object बनाएर लेखिँदैन, त्यसैले यस चरणमा ठूला अंक, खाली ठाउँ र दोहोरिएका key बदलिँदैनन्। तर JSON को शुद्धता जाँचिँदैन। आफ्नो एपअनुसार timeout र त्रुटि व्यवस्थापन थप्नुहोस्। Requests ले वातावरणको proxy र .netrc सेटिङ प्रयोग गर्न सक्छ।

curl सफल हुँदा पनि Fetch किन रोकिन सक्छ?

ब्राउजरले CORS नियम लागू गर्छ र केही हेडर आफैँ व्यवस्थापन गर्छ। त्यस्ता हेडर Fetch कोडबाट हटाएर टिप्पणीमा नाम देखाइन्छ। credentials: omit भएकाले ब्राउजर सत्रका cookie स्वतः पठाइँदैनन्। ती हेडर सर्भरबाट नियन्त्रण गर्नुपरे Python वा PHP विचार गर्नुहोस्।

-L नभए Fetch ले redirect म्यानुअल रूपमा सम्हाल्छ र ब्राउजरमा opaque response आउन सक्छ। Redirect सक्रिय हुँदा विधि फेरिने र प्रमाणीकरण विवरण अर्को ठेगानामा पठाइने व्यवहार लाइब्रेरीमा निर्भर हुन्छ। वास्तविक वातावरणमा redirect क्रम जाँच्नुहोस्।

एउटै नामका दुई फारम मान सुरक्षित राख्ने उदाहरण

दुवै tag मान बडीमा रहन्छन्। --data-urlencode ले खाली ठाउँ encode गर्छ र Requests लाई तयार पाठ दिइन्छ। यसरी dictionary मा एउटै key राख्दा एउटा मान हराउने समस्या हुँदैन।

curl 'https://example.com/api/tags' --data-urlencode 'tag=cloud hosting' --data-urlencode 'tag=linux'
import requests

url = "https://example.com/api/tags"
headers = {
    "Content-Type": "application/x-www-form-urlencoded"
}
body = "tag=cloud%20hosting&tag=linux".encode("utf-8")

response = requests.request(
    method="POST",
    url=url,
    headers=headers,
    data=body,
    allow_redirects=False,
    verify=True,
)
print(response.status_code)
print(response.text)

curl विकल्पले कोडमा के गर्छन्?

curl विकल्पकोडमा हुने काम
URL / --urlएउटा पूरा HTTP वा HTTPS URL
-X / --requestस्पष्ट रूपमा दिइएको HTTP विधि
-H / --headerनाम र मान; दोहोरिएका वा खाली हेडर निर्देशन जाँच्नुपर्छ
-d / --data / --data-raw / --data-binaryकमान्डभित्रको बडी; डेटा argument को क्रम कायम
--data-urlencode / -Gमान encode गर्ने; -G ले डेटालाई URL query मा लैजाने
--jsonJSON पाठ कायम राख्ने र पूर्वनिर्धारित JSON हेडर थप्ने
-u / --userusername:password ढाँचामा Basic Auth
-L / -I / -kRedirect, HEAD र TLS जाँच; Fetch मा -k समर्थित छैन
-b / -A / -eCookie, User-Agent र Referer मा ब्राउजरका सीमा लागू
--compressed / -s / -S / -v / -iलक्षित लाइब्रेरीबाट decompression; terminal को प्रस्तुति नक्कल हुँदैन

रूपान्तरणसम्बन्धी प्रश्नहरू

कमान्ड टाँस्नेबित्तिकै अनुरोध जान्छ?

जाँदैन। ब्राउजरमै पाठ विश्लेषण र कोड निर्माण मात्र हुन्छ। URL वा पासवर्ड परीक्षण गरिँदैन। तयार कोड चलाएपछि मात्र अनुरोध पठाइन्छ।

DevTools को Copy as cURL प्रयोग गर्न मिल्छ?

POSIX ढाँचाको एउटा अनुरोध र समर्थित विकल्प भए मिल्छ। bash ढाँचा छान्नुहोस्। असमर्थित विकल्प चुपचाप छाडिँदैन; त्रुटि देखिएमा त्यसको काम बुझेर सच्याउनुहोस्।

JSON का ठूला अंक जस्ताको तस्तै रहन्छन्?

बडीलाई पाठकै रूपमा राखिन्छ, JavaScript अंकमा बदलिँदैन। यस रूपान्तरणमा अंक, खाली ठाउँ वा दोहोरिएका key फेरिँदैनन्। --json ले JSON syntax जाँच गर्दैन।

Fetch मा केही हेडर किन छैनन्?

ब्राउजरले व्यवस्थापन गर्ने हेडर हटाएर टिप्पणीमा देखाइन्छ। Content-Length भने HTTP लाइब्रेरीले पुनः गणना गर्छ। आवश्यक हेडरका लागि Python वा PHP आउटपुट जाँच्नुहोस्।

डाउनलोड गरेको कोड साझा गर्नुअघि के जाँच्ने?

इनपुटका token, पासवर्ड वा cookie कोडमै रहन सक्छन्। साझा गर्नु वा repository मा राख्नुअघि जाँच्नुहोस्। प्रोजेक्टअनुसार प्रमाणीकरण विवरणको व्यवस्थापन, timeout र त्रुटि सम्हाल्ने कोड थप्नुहोस्।

प्राविधिक दस्तावेज: curl · Requests · Fetch