स्केलेबल, रखरखाव योग्य और उपयोग में आसान सिस्टम बनाने के लिए रेस्टफुल एपीआई को प्रभावी ढंग से डिजाइन करना महत्वपूर्ण है। हालाँकि कुछ मानक मौजूद हैं, लेकिन कई सख्त नियम नहीं हैं बल्कि एपीआई डिज़ाइन को निर्देशित करने के लिए सर्वोत्तम प्रथाएँ हैं। एपीआई के लिए व्यापक रूप से उपयोग किया जाने वाला एक वास्तुशिल्प पैटर्न एमवीसी (मॉडल-व्यू-कंट्रोलर) है, लेकिन यह अकेले नामकरण और संरचना जैसे एपीआई डिजाइन के बेहतर पहलुओं को संबोधित नहीं करता है। इस लेख में, हम REST API की संरचना के लिए आवश्यक दिशानिर्देशों के बारे में जानेंगे।
मुख्य सिद्धांत:
संसाधन-उन्मुख: अपने एपीआई को संसाधनों के आधार पर डिज़ाइन करें, न कि कार्यों के आधार पर। संसाधनों को संज्ञा के रूप में समझा जाना चाहिए, क्रिया के रूप में नहीं। उदाहरण के लिए:
/उपयोगकर्ताओं के संग्रह तक पहुंचने के लिए उपयोगकर्ता।
/users/{userId} किसी विशिष्ट उपयोगकर्ता तक पहुँचने के लिए।
संगति: एपीआई सहज होना चाहिए। यदि कोई उपयोगकर्ता /users से संसाधनों की सूची प्राप्त कर सकता है, तो उसे एक पहचानकर्ता जोड़कर व्यक्तिगत संसाधनों को लाने में सक्षम होने की उम्मीद करनी चाहिए: /users/{userId}।
संग्रह बनाम एकल संसाधन:
संसाधनों का संग्रह बहुवचन संज्ञा द्वारा दर्शाया जाता है: /उपयोगकर्ता, /उत्पाद।
किसी एकल संसाधन को उस संसाधन के विशिष्ट पहचानकर्ता को जोड़कर दर्शाया जाता है: /users/{userId}, /products/{productId}.
सामान्य HTTP तरीके और उनके उपयोग के मामले:
प्राप्त करें: सर्वर से डेटा पुनर्प्राप्त करें।
उदाहरण: GET /products सभी उत्पादों की एक सूची लौटाता है।
उदाहरण: GET /users/{userId} निर्दिष्ट userId के साथ उपयोगकर्ता को पुनः प्राप्त करता है।
पोस्ट: सर्वर पर एक नया संसाधन बनाएं।
उदाहरण: POST /users एक नया उपयोगकर्ता बनाता है।
PUT: मौजूदा संसाधन को नए डेटा (पूर्ण अद्यतन) से बदलें।
उदाहरण: PUT /users/{userId} उपयोगकर्ता के डेटा को पूरी तरह से नए डेटा से बदल देता है।
पैच: मौजूदा संसाधन को आंशिक रूप से अद्यतन करें (आंशिक अद्यतन)।
उदाहरण: PATCH /users/{userId} केवल निर्दिष्ट विशेषताओं को अपडेट करता है, जैसे फ़ोन नंबर।
हटाएँ: एक संसाधन हटाएँ।
उदाहरण: DELETE /users/{userId} निर्दिष्ट userId वाले उपयोगकर्ता को हटा देता है।
उदाहरण: उपयोगकर्ता विवरण प्राप्त करने के लिए GET अनुरोध करते समय, अनुरोध में आवश्यक प्राधिकरण टोकन शामिल होना चाहिए, भले ही पिछले अनुरोध ने पहले ही उपयोगकर्ता को प्रमाणित कर दिया हो। वितरित सिस्टम में यह आवश्यक है, जहां अलग-अलग अनुरोध अलग-अलग सर्वर पर आ सकते हैं।
समाधान: सत्र प्रबंधन के लिए, रेडिस जैसे केंद्रीकृत या वितरित भंडारण सिस्टम या जेडब्ल्यूटी (जेएसओएन वेब टोकन) जैसे स्टेटलेस प्रमाणीकरण तंत्र का उपयोग करें।
उदाहरण:
GET /orders/{orderId} ऑर्डर, ऑर्डर_आइटम और ग्राहक तालिकाओं से जानकारी मिलाकर ऑर्डर विवरण प्राप्त कर सकता है।
उदाहरण: एक GET /रिपोर्ट/{रिपोर्टआईडी} एंडपॉइंट अनुरोध में क्वेरी पैरामीटर या हेडर के आधार पर विभिन्न प्रारूपों (जेएसओएन, सीएसवी, पीडीएफ) में एक रिपोर्ट लौटा सकता है।
उदाहरण एपीआई संरचना
इन सभी सिद्धांतों को एक साथ जोड़ने के लिए, यहां इन सर्वोत्तम प्रथाओं का पालन करते हुए एक नमूना एपीआई संरचना दी गई है:
GET /products: सभी उत्पादों को पुनः प्राप्त करता है।
GET /products/{productId}: किसी विशिष्ट उत्पाद का विवरण प्राप्त करता है।
पोस्ट/उत्पाद: एक नया उत्पाद बनाता है।
PUT /products/{productId}: उत्पाद को productId से बदल देता है।
PATCH /products/{productId}: उत्पाद को आंशिक रूप से अपडेट करता है।
DELETE /products/{productId}: उत्पाद हटाता है।
इस संरचना में, संसाधनों को स्पष्ट रूप से परिभाषित किया गया है, और HTTP विधियाँ एक स्वच्छ और सहज एपीआई सुनिश्चित करते हुए की जाने वाली कार्रवाई को निर्दिष्ट करती हैं।
**निष्कर्ष
**रेस्टफुल एपीआई को डिजाइन करने में सिर्फ रूट बनाने और HTTP तरीकों को संभालने के अलावा और भी बहुत कुछ शामिल है। संसाधनों पर ध्यान केंद्रित करके, कार्यों के लिए HTTP तरीकों का लाभ उठाकर, और स्टेटलेसनेस का पालन करके, आप ऐसे एपीआई बनाते हैं जो सहज, रखरखाव योग्य और स्केलेबल होते हैं। याद रखें कि एपीआई लचीली होनी चाहिए और विशिष्ट डेटाबेस संरचनाओं से स्वतंत्र होनी चाहिए, जिससे आपके सिस्टम के बढ़ने पर अधिक अनुकूलन क्षमता प्राप्त हो सके।
इन सम्मेलनों का पालन करने से यह सुनिश्चित होता है कि आपका एपीआई डिज़ाइन कुशल और उपयोगकर्ता के अनुकूल दोनों है, जो अंततः आपके एपीआई के डेवलपर्स और उपभोक्ताओं दोनों के लिए अनुभव को बढ़ाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3