Amazon API Gateway के साथ APIs बनाना

AWS पर एप्लिकेशन डिप्लॉय करना

Dunieski Otano

Amazon Web Services Solutions Architect

तीन क्लाइंट, एक बैकएंड

  • Web, मोबाइल, और एक पार्टनर सभी एक ही बैकएंड को कॉल करते हैं
  • हर एक थोड़ा अलग फ़ॉर्मेट बोलता है
  • एक फ्रंट डोर हर कॉलर को वैलिडेट और ट्रांसफ़ॉर्म करता है

 

एक ही API Gateway के ज़रिए जुड़े तीन क्लाइंट टाइप, जो रिक्वेस्ट्स को बैकएंड सर्विसेज़ तक रूट करता है

AWS पर एप्लिकेशन डिप्लॉय करना

API Gateway क्या करता है

मैनेज्ड फ्रंट डोर के रूप में API Gateway: वेब और मोबाइल क्लाइंट्स एक सेंट्रल गेटवे से रूट होते हैं, जिसमें रूटिंग, ऑथ, थ्रॉटलिंग, और ट्रांसफ़ॉर्मेशन फीचर्स हैं जो Lambda, HTTP endpoints, और AWS सेवाओं तक भेजते हैं

  • आपकी APIs के लिए पूरी तरह मैनेज्ड फ्रंट डोर
  • रूटिंग, ऑथ, थ्रॉटलिंग, और ट्रांसफ़ॉर्मेशन संभालता है
  • क्लाइंट्स और आपके बैकएंड के बीच बैठता है
  • बैकएंड: Lambda, HTTP endpoints, या AWS सेवाएँ
AWS पर एप्लिकेशन डिप्लॉय करना

इंटीग्रेशन टाइप्स

  • Lambda proxy: पूरी रिक्वेस्ट Lambda को पास करता है
  • Lambda non-proxy: आप रिक्वेस्ट/रिस्पॉन्स फ़ील्ड्स मैप करते हैं
  • HTTP: किसी HTTP बैकएंड को फ़ॉरवर्ड करता है
  • MOCK: बिना बैकएंड के रिस्पॉन्स लौटाता है

चार API Gateway इंटीग्रेशन टाइप: Lambda proxy पूरा रिक्वेस्ट पास करता है, Lambda non-proxy मैपिंग टेम्पलेट्स का उपयोग करता है, HTTP किसी endpoint को फ़ॉरवर्ड करता है, और MOCK एक स्टैटिक रिस्पॉन्स लौटाता है

AWS पर एप्लिकेशन डिप्लॉय करना

रिक्वेस्ट और रिस्पॉन्स ट्रांसफ़ॉर्मेशन

  • मैपिंग टेम्पलेट्स VTL से पेलोड रीशेप करते हैं
  • Velocity Template Language बॉडी, हेडर्स, पैराम्स ट्रांसफ़ॉर्म करता है
  • रिक्वेस्ट मैपिंग: क्लाइंट फ़ॉर्मेट से बैकएंड फ़ॉर्मेट
  • रिस्पॉन्स मैपिंग: बैकएंड फ़ॉर्मेट से क्लाइंट फ़ॉर्मेट

VTL मैपिंग टेम्पलेट फ्लो: क्लाइंट पेलोड को रिक्वेस्ट टेम्पलेट बैकएंड तक पहुँचने से पहले ट्रांसफ़ॉर्म करता है, फिर बैकएंड रिस्पॉन्स को रिस्पॉन्स टेम्पलेट क्लाइंट को लौटाने से पहले ट्रांसफ़ॉर्म करता है

AWS पर एप्लिकेशन डिप्लॉय करना

रिक्वेस्ट वैलिडेशन

रिक्वेस्ट वैलिडेशन मोड्स: JSON schema के खिलाफ बॉडी वैलिडेट करें, आवश्यक क्वेरी और हेडर पैरामीटर्स वैलिडेट करें, या दोनों वैलिडेट करें, इससे पहले कि Lambda बैकएंड इन्वोक हो

  • खराब इनपुट को बैकएंड तक पहुँचने से पहले रिजेक्ट करें
  • आवश्यक पैरामीटर्स: हेडर्स, क्वेरी स्ट्रिंग्स, पाथ्स
  • मॉडल स्कीमा: JSON बॉडी की शेप वैलिडेट करें
  • बॉडी, पैरामीटर्स, या दोनों वैलिडेट करें
AWS पर एप्लिकेशन डिप्लॉय करना

स्टेटस कोड्स और एरर कॉन्ट्रैक्ट्स

  • कंसिस्टेंट कॉन्ट्रैक्ट के लिए बैकएंड स्टेटस कोड ओवरराइड करें
  • बैकएंड 502 को क्लाइंट्स के लिए साफ 503 में मैप करें
  • गेटवे रिस्पॉन्सेज़: एरर बॉडीज़ कस्टमाइज़ करें
  • बैकएंड चाहे जो हो, क्लाइंट्स को प्रेडिक्टेबल एरर मिलते हैं

पूरी API Gateway रिक्वेस्ट लाइफसाइकल: वैलिडेशन गेट पर खराब इनपुट रिजेक्ट करता है, मैपिंग टेम्पलेट वैध इनपुट को बैकएंड के लिए रीशेप करता है, रिस्पॉन्स टेम्पलेट आउटपुट को एक कंसिस्टेंट क्लाइंट कॉन्ट्रैक्ट में फ़ॉर्मैट करता है

AWS पर एप्लिकेशन डिप्लॉय करना

सभी को साथ जोड़ना

  • क्लाइंट रिक्वेस्ट → वैलिडेशन → ट्रांसफ़ॉर्मेशन → बैकएंड
  • खराब इनपुट गेट पर रिजेक्ट होता है
  • अच्छा इनपुट बैकएंड के लिए रीशेप होता है
  • बैकएंड रिस्पॉन्स क्लाइंट कॉन्ट्रैक्ट में रीशेप होता है

पूरी API Gateway रिक्वेस्ट लाइफसाइकल: वैलिडेशन गेट पर खराब इनपुट रिजेक्ट करता है, मैपिंग टेम्पलेट वैध इनपुट को बैकएंड के लिए रीशेप करता है, रिस्पॉन्स टेम्पलेट आउटपुट को एक कंसिस्टेंट क्लाइंट कॉन्ट्रैक्ट में फ़ॉर्मैट करता है

AWS पर एप्लिकेशन डिप्लॉय करना

अभ्यास करते हैं!

AWS पर एप्लिकेशन डिप्लॉय करना

Preparing Video For Download...