मुखपृष्ठ » कोडिंग » रेस्ट एंड रिस्टफुल एपीआई डेवलपमेंट की मूल बातें

    रेस्ट एंड रिस्टफुल एपीआई डेवलपमेंट की मूल बातें

    वेब डेवलपर अक्सर बात कर रहे हैं बाकी सिद्धांत और प्रतिष्ठित डेटा वास्तुकला, जैसा कि यह आधुनिक विकास का एक महत्वपूर्ण पहलू है, लेकिन कभी-कभी यह अविश्वसनीय रूप से भ्रमित हो सकता है। REST अपने आप में एक तकनीक नहीं है, बल्कि यह है कुछ संगठनात्मक सिद्धांतों के साथ एपीआई बनाने की एक विधि. ये सिद्धांत डेवलपर्स को मार्गदर्शन करने के लिए हैं, और एपीआई अनुरोधों को संसाधित करने के लिए अधिक सार्वभौमिक वातावरण बनाते हैं.

    इस पोस्ट में, मैं एक पक्षी की आंखों के दृश्य से अन्य विकास प्रथाओं की व्याख्या करना चाहता हूं। मैं निपटना चाहता हूं क्या इसके बजाय किस तरह. हालाँकि मैं दोनों क्षेत्रों को छू रहा हूँ, यह पोस्ट किसी के लिए भी बनाई गई है जो वेब डेवलपमेंट में है, लेकिन केवल REST सर्वर की अवधारणा को समझ नहीं सकता है.

    वेब डेवलपर्स के लिए बाकी

    संक्षिप्त नाम बाकी के लिए है प्रतिनिधित्ववादी स्थिति में स्थानांतरण. यह कुछ भ्रामक लग सकता है, और विकी प्रविष्टि ध्वनि को और भी भ्रामक बनाती है। लेकिन शब्दावली को सरल बनाना संभव है.

    REST सिर्फ एक श्रृंखला है दिशा-निर्देश और वास्तुकला शैली डेटा ट्रांसमिशन के लिए उपयोग की जाती है. यह आमतौर पर वेब एप्लिकेशन पर लागू होता है, लेकिन सॉफ्टवेयर को डेटा भी पास कर सकता है.

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

    इसे सभी को एक साथ जोड़कर, Restful APIs API हैं जो REST आर्किटेक्चर का अनुसरण करते हैं.

    वास्तव में REST वास्तुकला क्या है?

    यह वह जगह है जहाँ यह विशिष्ट बिछाने के लिए कठिन है। हालांकि कुछ वास्तु स्थिरांक हैं, जैसे:

    • संगति पूरे एपीआई में
    • स्टेटलेस अस्तित्व, यानी कोई सर्वर-साइड सत्र नहीं
    • का उपयोग HTTP स्थिति कोड जहां उपयुक्त हो
    • का उपयोग URL समापन बिंदु एक तार्किक पदानुक्रम के साथ
    • यूआरएल में संस्करण बजाय HTTP हेडर में

    W3C HTML5 युक्ति की तरह कोई विशेष दिशानिर्देश नहीं हैं जिससे भ्रम हो सकता है, और REST शब्दावली के आसपास अनिश्चितता का एक संकेत है.

    इसके अलावा, उपरोक्त सूची कठिन-व्रत नियम नहीं माने जाने चाहिए, भले ही वे सबसे आधुनिक रेस्टफुल एपीआई के सच हैं.

    छवि: restful-api-design.readthedocs.io

    REST एक है हल्की कार्यप्रणाली जो इसे HTTP डेटा के लिए एकदम सही बनाता है। यही कारण है कि REST वेब पर इतना लोकप्रिय हो गया, और इसे एपीआई विकास के लिए सबसे अच्छा विकल्प क्यों माना जाता है.

    जैसा कि विनय साहनी कहते हैं, “API एक डेवलपर का UI है.” सब कुछ का उपयोग करना आसान होना चाहिए, और एक महान उपयोगकर्ता अनुभव प्रदान करना चाहिए। रेस्टफुल एपीआई का लक्ष्य सिर्फ इतना करना है.

    मुख्य एपीआई के लिए मुख्य Takeaways

    ये युक्तियां एपीआई के संदर्भ में हैं वेब अनुप्रयोगों के लिए सख्ती से. इस का मतलब है कि HTTP एक आवश्यकता है, और यह अक्सर इसका मतलब है API डेटा को बाहरी सर्वर पर होस्ट किया जाता है. आइए जांच करें कि RESTful API कैसे API उपयोगकर्ता के पक्ष में काम करता है.

    एपीआई उपयोगकर्ता वेब डेवलपर है जो एक स्क्रिप्ट का निर्माण कर सकता है जो बाहरी एपीआई सर्वर में जोड़ता है, फिर आवश्यक डेटा HTTP पर पारित किया जाता है। तब डेवलपर अपनी वेबसाइट पर डेटा प्रदर्शित कर सकता है बाहरी सर्वर के लिए व्यक्तिगत पहुँच के बिना (ट्विटर डेटा खींचने की तरह).

    आम तौर पर बोल रहे हैं चार आज्ञा अभ्यस्त पहुँच योग्य एपीआई:

    1. प्राप्त किसी वस्तु को पुनः प्राप्त करने के लिए
    2. पद एक नई वस्तु बनाने के लिए
    3. डाल किसी वस्तु को बदलने या बदलने के लिए
    4. DELETE किसी वस्तु को हटाने के लिए

    इनमें से प्रत्येक विधि होनी चाहिए एपीआई कॉल के साथ पारित कर दिया सर्वर को क्या करना है यह बताने के लिए.

    वेब APIs का विशाल बहुमत केवल अनुमति दें प्राप्त अनुरोध बाहरी सर्वर से डेटा खींचने के लिए। प्रमाणीकरण वैकल्पिक है, लेकिन संभावित रूप से हानिकारक आदेशों की अनुमति देते समय एक अच्छा विचार है डाल या DELETE.

    हालाँकि बहुत से Restful API यहाँ तक नहीं जाते हैं। पोकेपी पर विचार करें जो एक नि: शुल्क पोकेमोन एपीआई डेटाबेस है। यह सभ्य दर के साथ जनता के लिए खुला है (समय की अवधि में एपीआई अनुरोधों की एक निश्चित संख्या तक उपयोगकर्ताओं को सीमित), लेकिन केवल अनुमति देता है प्राप्त संसाधनों तक पहुँचने की विधि। यह बोलचाल की भाषा में a कहा जा सकता है खपत केवल एपीआई.

    वापसी के प्रकार भी महत्वपूर्ण हैं, और चाहिए समरूपता बनाए रखें सभी संसाधनों के लिए। JSON ऑनलाइन डेटा के साथ एक लोकप्रिय रिटर्न प्रकार है जो उचित डेटा संरचनाओं की व्याख्या करता है.

    रेस्टफुल एपीआई का उपयोग करें एपीआई वस्तुओं के लिए संज्ञा, तथा क्रिया करने के लिए क्रिया उन वस्तुओं पर। प्रमाणीकरण इसका हिस्सा हो सकता है, दर सीमित होना भी इसका हिस्सा हो सकता है। लेकिन एक बहुत ही सरल एपीआई उपयोगकर्ता सीमाओं के लिए बहुत अधिक चिंता किए बिना प्राप्त कर सकता है.

    एपीआई संसाधनों तक पहुँच

    सार्वजनिक एपीआई आम तौर पर होते हैं प्रत्यक्ष वेबसाइट के पते से सुलभ. इसका मतलब है की URL संरचना महत्वपूर्ण है, और केवल एपीआई अनुरोधों के लिए उपयोग किया जाना चाहिए.

    कुछ URL में उपसर्ग निर्देशिका शामिल हो सकती है / V2 / पिछले API के अपडेट किए गए संस्करण 2 के लिए। यह उन डेवलपर्स के लिए आम है जो अपने 1.x एपीआई को नहीं हटाना चाहते हैं, लेकिन फिर भी नवीनतम संरचना की पेशकश करना चाहते हैं.

    मुझे इस पोस्ट को कवर करने में बहुत मज़ा आया बुनियादी URL संरचनाएँ और अन्य सेवाओं से उदाहरण.

    ध्यान दें कि समापन बिंदु रिटर्न डेटा बदल जाएगा नाटकीय रूप से पर आधारित है HTTP विधि. उदाहरण के लिए, प्राप्त सामग्री प्राप्त करता है, जबकि पद नई सामग्री बनाता है। अनुरोध समान समापन बिंदु को इंगित कर सकता है, लेकिन परिणाम बहुत भिन्न हो सकता है.

    छवि: Reddit API दस्तावेज़ीकरण

    ऑनलाइन उदाहरणों को देखने से आपको अवधारणाओं को स्पष्ट समझने में मदद मिल सकती है। हमने पहले ही पोकपी को देखा था, लेकिन यहां कुछ और हैं वास्तविक दुनिया एपीआई उदाहरण है करने के लिए:

    • Reddit API
    • गिटहब एपीआई
    • फ़्लिकर एपीआई
    • Pinterest API

    अपनी खुद की एपीआई का निर्माण

    अपने स्वयं के एपीआई के निर्माण की प्रक्रिया को हल्के में नहीं लिया जाना चाहिए, लेकिन यह उतना जटिल नहीं है जितना आप सोच सकते हैं। यह एक लेता है एपीआई डिजाइन पैटर्न और सर्वोत्तम प्रथाओं की समझ वास्तविक मूल्य के कुछ बनाने के लिए.

    प्रत्येक एपीआई चाहिए अपने सर्वर से कनेक्ट करें किसी तरह का डेटा वापस करने के लिए। न केवल आपको ऐसा करने के लिए कोड लिखने की आवश्यकता है, बल्कि आपको रिटर्न डेटा को प्रारूपित करने की भी आवश्यकता है। अन्य संभावित आवश्यकताओं में शामिल हैं प्रमाणीकरण तथा दर सीमित, इसलिए एक एपीआई का निर्माण निश्चित रूप से दिल के बेहोश होने के लिए नहीं है.

    लेकिन आइए एक नजर डालते हैं कुछ बुनियादी सिद्धांत एपीआई वास्तुकला की.

    समापन बिंदु बनाएँ

    एपीआई विकास का एक पहलू है निर्माण समापन बिंदु. कब संसाधन बनाना आप संज्ञाओं का उपयोग करना चाहते हैं, क्रियाओं का नहीं। इसका मतलब है कि एपीआई डेटा को किसी व्यक्ति, स्थान या चीज को लौटाया जाना चाहिए विशिष्ट विशेषताओं के साथ एक बात (उदाहरण के लिए एक ट्वीट और उसके सभी मेटाडेटा).

    संज्ञाओं को नाम देना कठिन हो सकता है, लेकिन यह एपीआई विकास का एक महत्वपूर्ण पहलू है। जब भी संभव हो सरलीकरण सबसे अच्छा है.

    एक बड़ी बहस है एकवचन बनाम बहुवचन संज्ञाओं। यदि आप एक ट्विटर एपीआई बना रहे थे तो आपके पास पहले वस्तु समूह (यानी ट्वीट) हो सकता है, फिर वस्तु आइटम दूसरा (यानी ट्वीट आईडी).

     $ / ट्वीट / 15032934882934 $ / ट्वीट / 15032934882934 

    इस मामले में, मैं चाहता हूँ कि विलक्षण रूप बेहतर दिखाई दे। यह विशेष रूप से सच है जब केवल एक संसाधन वापस किया जा रहा है। लेकिन कोई भी दस्तावेज 100% सही उत्तर नहीं है, इसलिए जो भी आपकी परियोजना के लिए सबसे उपयुक्त है उसे करें.

    वापसी प्रकार सेट करें

    एक और विचार है वापसी प्रकार डेटा. अधिकांश वेब उपयोगकर्ता JSON सामग्री की अपेक्षा करते हैं, इसलिए यह सबसे अच्छा विकल्प है। यदि आप दोनों की पेशकश करना चाहते हैं तो XML एक और विकल्प है। हालांकि JSON वेब डेवलपर्स के बीच मौलिक एपीआई रिटर्न प्रकार है.

    एपीआई विकास में बहुत कुछ है, इसलिए मैं पहले एपीआई के साथ खेलने की सलाह देता हूं। इस तरह आप देख सकते हैं कि अन्य डेवलपर्स अपने एपीआई का निर्माण कैसे करते हैं, और उम्मीद है कि आप विशिष्ट आवश्यकताओं से परिचित होंगे.

    यदि आप अभी शुरुआत कर रहे हैं, तो कृपया इन देव ट्यूटोरियल्स पर विचार करें:

    • बाकी एपीआई ट्यूटोरियल साइट
    • एक साधारण REST API लिखना
    • एक उत्साही वेब सेवा का निर्माण

    आगे के संसाधन

    वेब ऐप डेवलपमेंट सीखने का सबसे अच्छा तरीका अभ्यास है। दी गई थ्योरी हमेशा अध्ययन के लायक होती है, क्योंकि यह आपको डेवलपर्स के साथ बातचीत करने और यह समझने की अनुमति देती है कि चीजें कैसे काम करती हैं.

    लेकिन एपीआई विकास के साथ शुरू करने के लिए एक अच्छी जगह है अन्य API में कनेक्ट करना प्रथम। क्लाइंट-साइड कनेक्शन की मूल बातें जानें, और वहां से आप अपने स्वयं के एपीआई को खरोंच से बनाकर सर्वर-साइड एपीआई विकास पर आगे बढ़ सकते हैं.

    यदि यह आपका लक्ष्य है, तो कृपया अपनी यात्रा में सहायता के लिए निम्नलिखित संसाधनों पर विचार करें.

    पुस्तकें

    • बाकी एपीआई डिजाइन नियम पुस्तिका
    • रेस्टफुल वेब एपीआई
    • रेस्टफुल वेब सर्विसेज कुकबुक
    • अनडिस्टर्ड रिड: अ गाइड टू द परफेक्ट एपीआई

    सामग्री

    • एक शुरुआती गाइड HTTP और बाकी के लिए
    • एक RESTful API बनाना
    • रेस्टफुल रिसोर्स नेमिंग गाइड
    • MEAN स्टैक का उपयोग करके एक REST API बनाना