कैसे वसंत के साथ एपीआई बनाने के लिए पर पूरा गाइड

तेजी से एपीआई का निर्माण करें जो किसी भी व्यावसायिक आवश्यकता के अनुकूल हो

परिचय

भले ही स्प्रिंगबूट प्रोजेक्ट मौजूद है और यह आपके विकास को आसान बनाने के साथ-साथ एक सुविधा के लिए "जीवन के लिए समय" को बेहतर बनाने का लक्ष्य रखता है, फिर भी कई ऐसे अनुप्रयोग हैं जो स्प्रिंग एप्लिकेशन के भीतर चलते हैं जिन्हें कभी-कभी ट्रैक करना मुश्किल होता है या एक साथ रखा जाना मुश्किल होता है।

इस लेख में, मैं उन भागों से निबटूंगा, उन तकनीकों को रेखांकित करूँगा जिन्हें मैंने उपयोग करने के लिए वर्षों के साथ चुना था, और एक उद्यम अनुप्रयोग बनाया।

स्प्रिंग प्रोजेक्ट्स की भूमिका

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

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

एक वसंत आवेदन का अवलोकन
  1. उपयोगकर्ता HTTP अनुरोध भेजते हैं। इन अनुरोधों को सुरक्षित करने के लिए, हमें HTTPS का उपयोग करना चाहिए।
  2. स्प्रिंग एप्लिकेशन इन अनुरोधों को संसाधित करता है, जाँचता है कि क्या डेटा वैध है और साथ ही यदि उपयोगकर्ता इस ऑपरेशन को करने के लिए अधिकृत है और अंततः डेटाबेस के लिए डेटा बचाता है।
  3. उपयोगकर्ताओं को एक HTTP प्रतिक्रिया मिलती है कि उनका अनुरोध सफलतापूर्वक संसाधित किया गया है या नहीं

स्प्रिंग प्रोजेक्ट आर्किटेक्चर

निम्न आरेख अधिक विस्तार से प्रदर्शित करता है कि कैसे एक वसंत आवेदन आंतरिक रूप से संरचित है।

स्प्रिंग एप्लीकेशन आंतरिक संरचना
  1. जैसा कि कहा गया है, एप्लिकेशन एक मध्य परत है जो उपयोगकर्ताओं को डेटाबेस से अलग करती है। जब हम आमतौर पर स्प्रिंग एप्लिकेशन बनाने के बारे में सोचते हैं, तो हमें सबसे पहले डेटाबेस संरचना के बारे में विस्तार से पहचानने की कोशिश करनी चाहिए।
  2. उसके आधार पर, हम अपनी DDL स्क्रिप्ट को निष्पादित करने के लिए डेटाबेस वर्जनिंग फ्रेमवर्क का उपयोग करते हैं। बेशक, हम शुद्ध एसक्यूएल स्क्रिप्ट लिख सकते हैं, लेकिन यह हमें धीमा कर रहा है जब हम उत्पादन में पहले से ही आवेदन के साथ कुछ बदलना चाहते हैं, तो डेटाबेस संस्करण वर्किग जैसे लिक्विबेस और फ्लाईवे का उपयोग करना एक अच्छा अभ्यास है।
  3. कॉन्फ़िगरेशन वह जगह है जो सभी घटकों को एक साथ रखता है और एप्लिकेशन को काम करता है। कुछ उदाहरण हैं स्वैगरकॉन्फिग, कस्टम बीन क्रिएशन, साथ ही सिक्योरिटी कन्फिग्स।
  4. कार्यात्मक रूप से, उपयोगकर्ता के अनुरोधों का ध्यान रखने वाले भाग एंडपॉइंट्स, सेवाएं और डेटा एक्सेस ऑब्जेक्ट्स लेयर (स्प्रिंग रिपॉजिटरी) हैं।

डेटाबेस के लिए एक अनुरोध पथ

  1. जब कोई उपयोगकर्ता अनुरोध भेजता है, तो यह JSON ऑब्जेक्ट या XML के रूप में अनजाने में आने वाले स्प्रिंग एप्लिकेशन पर आता है। आंतरिक रूप से, स्प्रिंग हमारे लिए इन अनुरोधों की पुष्टि करता है और इसे TOs (ट्रांसफर ऑब्जेक्ट्स) पर बांध देता है।
  2. हम एक ही समय में ट्रांसफर ऑब्जेक्ट्स और एंटिटीज का उपयोग करते हैं, बाकी के एप्लिकेशन से ट्रांसेक्शनल पार्ट को अलग करने के लिए। ट्रांसफर ऑब्जेक्ट्स पर, हम javax.validation.constraints पैकेज और हाइबरनेट के कार्यान्वयन का उपयोग करके स्वैगर और सत्यापन के माध्यम से एपीआई प्रलेखन संलग्न करते हैं।
  3. एक अनुरोध समापन बिंदु पर आने से पहले, oauth2 के वसंत के कार्यान्वयन का उपयोग यह जांचने के लिए किया जाता है कि यह उपयोगकर्ता इस तरह की कार्रवाई करने के लिए अधिकृत है या नहीं।
  4. यदि उपयोगकर्ता एप्लिकेशन का उपयोग करने के लिए अधिकृत है, तो डेटा स्ट्रीम सेवाओं में चली जाती है। यहां, दो चीजें हो रही हैं: टीएस परिवर्तित इकाइयां प्राप्त करते हैं, हम यहां व्यापार तर्क जोड़ते हैं, संभवतः इसे अन्य सेवाओं के खिलाफ मान्य करते हैं ताकि, हम इसे डीएओ परत को पास कर सकें।
  5. DAO (डेटा एक्सेस लेयर) को केवल संस्थाओं का प्रबंधन करना चाहिए। इस स्तर पर कोई भी स्थानांतरण वस्तुएं अनुमति नहीं दी जानी चाहिए।
  6. निकाय एक डेटाबेस तालिका का प्रतिनिधित्व करते हैं। स्प्रिंग में, इन्हें ORM प्रौद्योगिकियों जैसे कि हाइबरनेट के माध्यम से टेबल पर मैप किया जाता है। ज्यादातर स्प्रिंग डेटा प्रोजेक्ट हमारे जीवन को बहुत आसान बना देता है जब यह डेटा के साथ खेलने की बात आती है।
  7. अंत में, हम उन कार्यों को करते हैं जो उपयोगकर्ता ने उनके अनुरोधों के लिए पूछे थे, और उन्हें HTTP प्रतिसाद के रूप में एक उत्तर दिया।

परियोजना

जबकि स्प्रिंग-बूट सीएलआई परियोजना है और स्प्रिंगबूट परियोजनाओं को बनाने के लिए इंटेलीज भी है, मैं अभी भी इसे बनाने के पारंपरिक तरीके के साथ जाऊंगा।

निर्भरता

सबसे पहले, हम https://start.spring.io/ पर जाते हैं और निम्नलिखित निर्भरताएँ जोड़ते हैं:

वसंत बूट निर्भरता

2. एक बार जब हम ऐसा कर लेते हैं, तो हम 'जनरेट' को हिट कर सकते हैं, और एक जिप फाइल डाउनलोड के लिए उपलब्ध है। इसे अनज़िप करें और इसे अपने IDE में मावेन प्रोजेक्ट के रूप में जोड़ें।

3. अंत में, हमें अपने जीवन को आसान बनाने के लिए कुछ और निर्भरता की आवश्यकता है:

कोड

  1. सबसे पहले, हमें डेटाबेस को मॉडल करने के लिए फ्लाईवे का कोड जोड़ना चाहिए:

2. दूसरा, डेटा स्रोत को कॉन्फ़िगर करें:

3. हमारे द्वारा बनाए गए स्कीमा को मैप करने के लिए एंटिटीज जोड़ें

4. अब हम इन संस्थाओं को प्रबंधित करने के लिए रिपॉजिटरी जोड़ेंगे जो सभी चार CRUD ऑपरेशन का समर्थन करते हैं

5. स्वैगर कॉन्फिगरेशन जोड़ें और TO में संस्थाओं को परिवर्तित करने में हमारी सहायता करने के लिए एक मॉडलमैपर बीन बनाएँ।

6. सेवा की परत को लिखने से पहले TO को अवश्य बनाया जाना चाहिए। ध्यान दें कि यहाँ हम कुछ मान्य नियम जोड़ते हैं जो स्प्रिंग द्वारा @Valid एनोटेशन के साथ संयोजन के रूप में उठाए जाते हैं जो हम नियंत्रकों में उपयोग कर रहे हैं।

7. सेवाएँ केवल रिपोजिटरी के शीर्ष पर आती हैं। वे आमतौर पर एक व्यवहार प्रकृति नहीं होना चाहिए। डेटा परिवर्तन और व्यावसायिक तर्क करने के लिए यहां।

8. अंत में, हम एपीआई बनाते हैं जो बाहरी उपयोगकर्ताओं को हमारे एप्लिकेशन तक पहुंचने की अनुमति देता है।

निष्कर्ष में, अब हमारे पास सभी चालित भाग हैं जिन्हें हमने पहले लिखा गया था। आप यहाँ पर पूरी परियोजना पर एक नजर डाल सकते हैं।

डेमो

हम GitLab से प्रोजेक्ट को क्लोन कर सकते हैं, पोस्टग्रेज डेटाबेस को स्पिन करने और एप्लिकेशन शुरू करने के लिए एक डॉक-कंपोज़ चला सकते हैं।

स्टार्टअप पर, यदि हम लॉग का पालन करते हैं, तो हम देख सकते हैं कि सबसे पहले फ्लाईवे डेटाबेस को मॉडल करता है, और उसके बाद ही, अन्य ईवेंट होते हैं।

एक बार शुरू करने के बाद, हम एक उत्पन्न किए गए स्वैगर पेज पर जा सकते हैं: http: // localhost: 8080 / swagger-ui.html।

हमें निम्न जैसा एक पृष्ठ दिखाई देगा जहाँ हम संचालन पर क्लिक कर सकते हैं और उन्हें आज़मा सकते हैं।

स्वैगर कॉन्फ़िगरेशन आउटपुट

इसके अलावा, आप Intellij का उपयोग कर रहे हैं, परीक्षण के तहत, दो फाइलें मौजूद हैं टिप्पणी ।http और post.http। एप्लिकेशन शुरू करने के बाद ये सर्वर के खिलाफ HTTP रिक्वेस्ट को चलाने में हमारी मदद करते हैं।

निष्कर्ष

संक्षेप में, हम उन सभी तकनीकों के माध्यम से हैं जिनके लिए एक अच्छे उद्यम आवेदन की आवश्यकता होती है, उन्हें एक साथ काम करने और हमारे आवेदन का निर्माण किया।

आगे क्या होगा

एक भावी पोस्ट में, हम पिछले OAuth कार्यान्वयन को इस एक के साथ जोड़ देंगे और हमारे समापन बिंदुओं को सुरक्षित करेंगे।

यदि आपको अधिक उत्पादक दृष्टिकोण के लिए इस्तेमाल किया गया है, या आपके कुछ प्रश्न हैं, तो उन्हें टिप्पणी में साझा करने के लिए स्वतंत्र महसूस करें या [email protected] पर ईमेल ड्रॉप करें।