10 मिनट का पाठ

परिचय

REST API हर जगह हैं — उनके बिना, वेबसाइटें बहुत अधिक उबाऊ होंगी। वे ही हैं जो एक वेबसाइट के फ्रंटएंड और बैकएंड को एकीकृत करते हैं, और आज हम खुद एक बनाएंगे — पांच मिनट से भी कम समय में।

REST API को परिभाषित करना

एक REST API — का संक्षिप्त रूप रेप्रेजेंटेशनल स्टेट ट्रांसफर एप्लीकेशन प्रोग्राम इंटरफेस — यह वह है जो विभिन्न प्रोग्रामिंग भाषाओं और एप्लिकेशन के हिस्सों को एक दूसरे के साथ संवाद करने की अनुमति देता है। स्वाभाविक रूप से, ये भाषाएं एक दूसरे से बात नहीं कर पाएंगी, क्योंकि वे एक दूसरे के कोड को नहीं समझ सकतीं। यह एक बड़ा नुकसान होगा, क्योंकि कुछ प्रोग्रामिंग भाषाएं विभिन्न क्षेत्रों में बेहतर प्रदर्शन करती हैं या विशिष्ट कार्यों के लिए तैयार की जाती हैं — उदाहरण के लिए, आप कभी भी मशीन लर्निंग के लिए जावास्क्रिप्ट का उपयोग नहीं करेंगे। हालांकि, पायथन इसके लिए पसंदीदा भाषा है — और यहीं पर REST APIs अपना मूल्य दिखाते हैं।

मूल रूप से, ये APIs सर्वर पर जानकारी ऊपर और नीचे भेजते हैं, जिस जानकारी को डिकोड किया जा सकता है और क्लाइंट को भेजा जा सकता है। इस प्रकार के API की मजबूत विशेषता यह है कि यह डेटाबेस के लिए बहुत अच्छी तरह से काम करता है — चार मौलिक HTTP मेथड्स जिनका उपयोग किया जा सकता है।

  • GET — सर्वर से डेटा प्राप्त करता है
  • POST — सर्वर में एक रिकॉर्ड बनाता है
  • PUT/PATCH — सर्वर में एक रिकॉर्ड अपडेट करता है
  • DELETE — सर्वर में मौजूद रिकॉर्ड को हटाता है

इन्हें CRUD (create, read, update, और delete) संक्षिप्त नाम से याद रखा जा सकता है।

उपयोग किए गए टूल्स का अवलोकन

अपना REST API बनाने के लिए, हमें कुछ पूर्वापेक्षाओं को इंस्टॉल करने की आवश्यकता होगी (हम इस पर आगे चर्चा करेंगे अगला खंड). इससे पहले कि हम शुरू करें, आइए उन उपकरणों पर एक त्वरित नज़र डालें जिनका हम वास्तव में उपयोग करने जा रहे हैं।

सबसे पहले, हमारे API के बैकएंड हिस्से के लिए - जो डेटाबेस, आने वाले अनुरोधों को संभालता है, और डेटा को संशोधित करता है - हम Python का उपयोग करेंगे, और एक शानदार लाइब्रेरी जिसे कहा जाता है Flask। चिंता न करें अगर आप Python से बहुत परिचित नहीं हैं - कोड छोटा होगा, और अच्छी तरह से समझाया जाएगा। इस लाइब्रेरी के अलावा, हमें वास्तव में बैकएंड साइड पर कुछ और नहीं चाहिए होगा!

Flask का एक लोकप्रिय विकल्प, जिसमें रुचि रखने वालों के लिए, है Django। हालांकि, यह Flask से एक कदम आगे है और अक्सर बहुत अधिक जटिल होता है, इसलिए हम इस पोस्ट के लिए Flask पर ही टिके रहेंगे।

हमारे RESTful API के फ्रंटएंड भाग के लिए, हम JavaScript का उपयोग करेंगे ताकि उपयोगकर्ता जो HTML पृष्ठ देखता है उसे संशोधित किया जा सके - हमारे API के काम करने का दृश्य प्रमाण देते हुए। इसी तरह, चिंता न करें अगर आप JavaScript नहीं जानते - कोड बैकएंड से भी सरल होने वाला है!

आवश्यकताएँ + स्थापना

आवश्यकताएँ

  • Python >= 3.4
  • Flask == 1.1.2
  • एक वेब ब्राउज़र

आइए सेटअप के साथ शुरुआत करते हैं। यदि आपके पास पहले से ही Python नहीं है, तो इसे डाउनलोड करें यहाँ.

हमारी पहली वास्तविक इंस्टॉलेशन पर - Flask। यदि आपके पास Python का संस्करण 3.4 या उससे अधिक है (आप इसकी जांच कर सकते हैं python3 -V आपके टर्मिनल में), तो आप अगले चरण के लिए तैयार हैं। यदि नहीं, तो आपको अपने Python को एक अधिक आधुनिक संस्करण में अपग्रेड करने की आवश्यकता होगी - निर्देश उनकी वेबसाइट पर हैं pip एक बार जब आप Flask इंस्टॉल कर लेते हैं, तो आप टाइप कर सकते हैं यहाँ.

अपने टर्मिनल में कहीं भी, और एक या दो मिनट के बाद आपके पास Flask लाइब्रेरी इंस्टॉल हो जाएगी। आगे बढ़ते हैं! python3 -m pip install Flask हम शुरुआत करने जा रहे हैं

बैकएंड का निर्माण

- यह वह है जो क्लाइंट नहीं देखता है, और एप्लिकेशन का वह हिस्सा जो भारी लिफ्टिंग करता है और HTTP अनुरोधों को संभालता है। हम इसे Python और Flask के साथ बनाएंगे। बैकएंड सबसे पहले, हमें अपनी लाइब्रेरी को इम्पोर्ट करने की आवश्यकता होगी। एक नई फ़ाइल बनाएं, इसे जो चाहें नाम दें - बस यह सुनिश्चित करें कि इसे

एक्सटेंशन के साथ समाप्त करें ताकि इसे Python फ़ाइल के रूप में पहचाना जा सके। मैं अपनी को नाम दूंगा .py फिर हम नीचे Flask को इम्पोर्ट करके शुरुआत कर सकते हैं। app.py.

फिर हमें अपने Flask वेब एप्लिकेशन को इनिशियलाइज़ करने की आवश्यकता है।

 flask import Flask

अगला, आइए एक Flask बनाएं

app = Flask(__name__)

, जो अनिवार्य रूप से वह URL है जिस पर उपयोगकर्ता को सामग्री तक पहुंचने के लिए जाना होगा। हम एक रूट बनाएंगे मार्गपर, ताकि उपयोगकर्ता वहां के डेटा तक पहुंचने के लिए उस URL पर जा सके। हम इस रूट को का उपयोग करके बना सकते हैं /hello डेकोरेटर — मूल रूप से एक फ़ंक्शन जो दूसरे फ़ंक्शन के चारों ओर लपेटा जाता है।

डेकोरेटर्स स्वयं में एक पूरा पोस्ट हो सकते हैं, लेकिन सार रूप में वे कुछ करते हैं, उस फ़ंक्शन को निष्पादित करते हैं जिसे वे "सजाते" हैं, और फिर कुछ करना जारी रखते हैं — मूल रूप से किसी अन्य फ़ंक्शन के चारों ओर कुछ निर्देश लपेटते हैं।

Python के साथ, हम "@" प्रतीक का उपयोग करके एक डेकोरेटर निर्दिष्ट कर सकते हैं। आइए कुछ पंक्तियों नीचे जाएं और अपना Flask मार्ग डेकोरेटर सेट करें।

@app.मार्ग("/hello", methods=["GET"])

उपरोक्त कोड होम पेज पर एक एप्लिकेशन मार्ग सेट करता है, और समर्थन करता है GET अनुरोध (ताकि JavaScript डेटा तक पहुंच सके)। आइए वास्तविक फ़ंक्शन बनाने की ओर बढ़ें जो तब निष्पादित होगा जब उपयोगकर्ता वहां जाएगा। डेकोरेटर के ठीक नीचे की पंक्ति में, निम्नलिखित कोड टाइप करें (या आप एक बार में सभी कोड को कॉपी करने के लिए पूरा कोड पर जा सकते हैं)।

def hello(): # you can name this anything you want
    return {"response": "Hello from Python!"}

हमने ऊपर जो फ़ंक्शन सेट किया है वह डेटा लौटा रहा है, JSON के रूप में — JavaScript ऑब्जेक्ट नोटेशन का संक्षिप्त नाम, और एक भाषा जिसे अधिकांश अन्य प्रमुख प्रोग्रामिंग भाषाओं द्वारा पढ़ा जा सकता है। यह एक ऑब्जेक्टके रूप में डेटा भेजता है, जिसका नाम "response" है और मान "Hello from Python" है — कुछ हद तक Python डिक्शनरी के समान।

अंत में, हमें एप्लिकेशन को चलाने के लिए तैयार करना होगा। हम यह फ़ाइल के नीचे — को जोड़कर कर सकते हैं — app.run() फ़ंक्शन।

if __name__ == "__main__":
    app.run(debug = True)

app.run() का मतलब है कि जब हम कमांड लाइन से कोड चलाएंगे तो एप्लिकेशन चलेगा, और हम सेट कर रहे हैं debug से True ताकि हम सब कुछ होते देख सकें और किसी भी संभावित त्रुटि को पकड़ सकें।

और बैकएंड और पायथन के लिए बस इतना ही! हम अब सरल फ्रंटएंड के लिए तैयार हैं — केवल 7 लाइनों के कोड के बाद! हमें इस फ़ाइल को थोड़ा संशोधित करना होगा ताकि हम जावास्क्रिप्ट और HTML फ़ाइलों को सर्व कर सकें, लेकिन वह केवल कुछ अतिरिक्त कोड की लाइनें होंगी। आप कर सकते इसे पहले से ही चलाने की कोशिश कर सकते हैं, अपना टर्मिनल खोलकर, अपनी वर्तमान पायथन फ़ाइल वाली डायरेक्टरी में नेविगेट करके, और टाइप करके python3 my-file-name.py.

यदि आप ऐसा करते हैं, तो आपके कंसोल पर कुछ जानकारी प्रिंट की जाएगी, जो कहेगी कि सर्वर localhost:5000 पर चल रहा है। यदि आप http://localhost:5000/helloपर जाते हैं, तो आप पहले से ही वहां JSON देख पाएंगे! यह ठीक उसी तरह दिखने वाला है जैसा हमने भेजा था (हालांकि यह JSON प्रारूप में होगा)। आपको नीचे दिए गए जैसा कुछ दिखना चाहिए:

{"response": "Hello from Python!"}

हालाँकि, हम डेटा को मैन्युअल रूप से प्राप्त करने के लिए कुछ JavaScript और HTML जोड़ते रहेंगे, क्योंकि अक्सर ये REST API का उपयोग एप्लिकेशन द्वारा किया जाता है, न कि सीधे उपयोगकर्ता द्वारा देखा जाता है।

फ्रंटएंड की स्थापना

हम API तक पहुंचने के लिए JavaScript का उपयोग करेंगे और एक सुपर-सिंपल HTML का उपयोग करेंगे जिससे एक इंडेक्स पेज बनाया जाएगा जिसे उपयोगकर्ता देख सकता है। चलिए शुरू करते हैं।

सबसे पहले, हम अपनी Python फ़ाइल के समान डायरेक्टरी में एक फ़ोल्डर बनाएंगे जिसका नाम होगा templates और उसके अंदर, एक फ़ाइल बनाएंगे जिसका नाम होगा index.html। यह वह फ़ाइल है जो रेंडर की जाएगी Python द्वारा जब कोई उपयोगकर्ता हमारी localhost वेबसाइट पर जाएगा। मैं index.html फ़ाइल की सामग्री के शुष्क विवरण पर नहीं जाऊंगा — यह केवल एक सरल फ़ाइल है जिसमें एक शीर्षक और JavaScript के लिए कोड इंजेक्ट करने के लिए जगह है।



 lang="en">

     charset="UTF-8">
     name="viewport" content="width=device-width, initial-scale=1.0">
    </span>REST API Sandbox<span class="nt">


    

Data from Python below! id="fromJS">