AWS पर API डिज़ाइन करना

AWS पर एप्लिकेशन विकसित करना

Ricardo Sueiras

Principal Technologist

API Gateway

 

APIs क्या हैं

 

  • Amazon API Gateway: API बनाने के लिए एक मैनेज्ड सर्विस.
  • अपनी APIs को डिज़ाइन, डिप्लॉय, मैनेज और सिक्योर करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
  • बैकएंड सर्विसेज़ से इंटीग्रेट करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API Gateway क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
  • बैकएंड सर्विसेज़ से इंटीग्रेट करें.
  • APIs की एक्सेस को सिक्योर करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API Gateway क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
  • बैकएंड सर्विसेज़ से इंटीग्रेट करें.
  • APIs की एक्सेस को सिक्योर करें.
  • बैकएंड की सुरक्षा हेतु रिक्वेस्ट्स थ्रॉटल करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API Gateway क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
  • बैकएंड सर्विसेज़ से इंटीग्रेट करें.
  • APIs की एक्सेस को सिक्योर करें.
  • बैकएंड की सुरक्षा हेतु रिक्वेस्ट्स थ्रॉटल करें.
  • रिक्वेस्ट/रिस्पॉन्स पेलोड्स ट्रांसफॉर्म करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API Gateway क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
  • बैकएंड सर्विसेज़ से इंटीग्रेट करें.
  • APIs की एक्सेस को सिक्योर करें.
  • बैकएंड की सुरक्षा हेतु रिक्वेस्ट्स थ्रॉटल करें.
  • रिक्वेस्ट/रिस्पॉन्स पेलोड्स ट्रांसफॉर्म करें.
  • कंज़्यूमर्स के लिए APIs पब्लिश करें.
AWS पर एप्लिकेशन विकसित करना

Amazon API Gateway क्षमताएँ

 

API Gateway क्षमताएँ

  • अलग-अलग प्रकार की API लागू करें.
  • बैकएंड सर्विसेज़ से इंटीग्रेट करें.
  • APIs की एक्सेस को सिक्योर करें.
  • बैकएंड की सुरक्षा हेतु रिक्वेस्ट्स थ्रॉटल करें.
  • रिक्वेस्ट/रिस्पॉन्स पेलोड्स ट्रांसफॉर्म करें.
  • कंज़्यूमर्स के लिए APIs पब्लिश करें.
  • API लाइफसाइकिल मैनेज करें: वर्ज़निंग, डिप्लॉयमेंट, एलियासेज़.
AWS पर एप्लिकेशन विकसित करना

API प्रकार

  • API Gateway तीन API प्रकार सपोर्ट करता है:
    • REST APIs
    • HTTP APIs
    • WebSocket APIs

 

API प्रकार

AWS पर एप्लिकेशन विकसित करना

API Gateway एंडपॉइंट्स

  • एंडपॉइंट्स तय करते हैं कि क्लाइंट्स आपकी API तक कैसे पहुँचें.
  • Edge-optimized: ग्लोबल लो-लेटेंसी के लिए AWS-मैनेज्ड CloudFront.
  • Regional: किसी विशेष AWS Region में डिप्लॉय.
  • Private: केवल AWS PrivateLink के ज़रिए पहुँच.
  • प्राइवेट एंडपॉइंट्स पब्लिक इंटरनेट से अलग रहते हैं.

 

एंडपॉइंट्स

AWS पर एप्लिकेशन विकसित करना

REST APIs

  • सबसे फीचर-समृद्ध API Gateway ऑफरिंग.
  • synchronous रिक्वेस्ट/रिस्पॉन्स मॉडल पर आधारित.

 

REST APIs

AWS पर एप्लिकेशन विकसित करना

REST API उपयोग केस

 

API REST उपयोग केस

  • फुल लाइफसाइकिल मैनेजमेंट चाहिए वाली एंटरप्राइज़ APIs.
  • एडवांस्ड सिक्योरिटी कंट्रोल्स वाली APIs.
  • थर्ड-पार्टी डेवलपर इकोसिस्टम्स जिनमें API keys और usage plans हों.
  • Lambda के बिना डायरेक्ट AWS सर्विस इंटीग्रेशंस.
AWS पर एप्लिकेशन विकसित करना

API Gateway REST API सपोर्ट

 

REST API सपोर्ट

  • रिक्वेस्ट वैलिडेशन.
  • API keys.
  • usage plans और throttling.
  • कॉन्फ़िगरेबल TTL के साथ रिस्पॉन्स कैशिंग.
  • VTL टेम्प्लेट्स से रिक्वेस्ट/रिस्पॉन्स ट्रांसफॉर्मेशन.
  • IAM ऑथेंटिकेशन (Signature V4).
  • Lambda ऑथराइज़र्स, Cognito user pools.
AWS पर एप्लिकेशन विकसित करना

API Gateway REST API सपोर्ट

 

 

REST API सपोर्ट

  • तीन एंडपॉइंट प्रकार सपोर्टेड:
    • Edge-optimized
    • Regional
    • Private
  • AWS WAF से वेब एक्सप्लॉइट प्रोटेक्शन.
  • कैनरी रिलीज़ डिप्लॉयमेंट्स.
  • AWS X-Ray और CloudWatch लॉगिंग से ऑब्ज़र्वेबिलिटी.
AWS पर एप्लिकेशन विकसित करना

REST APIs के समझौते (trade-offs)

  • HTTP APIs से अधिक महंगा.
  • लेटेंसी थोड़ी अधिक.

 

REST trade-offs

AWS पर एप्लिकेशन विकसित करना

HTTP APIs

  • फीचर चौड़ाई से अधिक परफॉर्मेंस और कॉस्ट के लिए ऑप्टिमाइज़्ड:
    • प्रदर्शन
    • लागत

 

HTTP APIs

AWS पर एप्लिकेशन विकसित करना

HTTP API उपयोग केस

  • सर्वरलेस वर्कलोड्स और Lambda-बैक्ड APIs.
  • माइक्रोसर्विसेज़ और लाइटवेट प्रॉक्सी APIs.
  • लेटेंसी-सेंसिटिव ऐप्स.
  • OAuth 2.0 / OIDC ऑथेंटिकेशन वाली APIs.

 

HTTP API उपयोग केस

AWS पर एप्लिकेशन विकसित करना

API Gateway HTTP API सपोर्ट

 

HTTP API फीचर्स

  • Lambda प्रॉक्सी इंटीग्रेशंस और ऑथराइज़र्स.
  • नेटिव JWT/OIDC ऑथराइज़ेशन (Cognito, Auth0, Okta).
  • API लेवल पर बिल्ट-इन CORS कॉन्फ़िगरेशन.
  • VPC Link के जरिए प्राइवेट VPC इंटीग्रेशंस.
  • हेडर्स, क्वेरी स्ट्रिंग्स और पाथ्स के लिए बेसिक पैरामीटर मैपिंग.
AWS पर एप्लिकेशन विकसित करना

HTTP API trade-offs

 

HTTP API सीमाएँ

  • HTTP APIs इनका सपोर्ट नहीं करती:

    • API keys
    • usage plans
    • request validation
    • response caching
    • AWS X-Ray के साथ ट्रेसिंग
    • VTL payload transformation

    • केवल सपोर्ट:

      • Edge या private endpoints (केवल regional)
AWS पर एप्लिकेशन विकसित करना

WebSocket APIs

 

WebSocket APIs

  • क्लाइंट्स और सर्वर्स के बीच दो-तरफ़ा कम्युनिकेशन.
  • कनेक्शन खुला रहता है, REST और HTTP APIs के विपरीत.
  • सर्वर्स कनेक्टेड क्लाइंट्स को डेटा पुश कर सकते हैं.
AWS पर एप्लिकेशन विकसित करना

WebSocket API उपयोग केस

  • चैट ऐप्लिकेशंस.
  • रियल-टाइम नोटिफिकेशंस.
  • रियल-टाइम डैशबोर्ड्स.

 

उपयोग केस

AWS पर एप्लिकेशन विकसित करना

API Gateway WebSocket API सपोर्ट

  • पेलोड डेटा ट्रांसफॉर्मेशंस.
  • रिक्वेस्ट वैलिडेशन.
  • स्पेशल बिल्ट-इन रूट्स:
    • $connect: क्लाइंट कनेक्शन स्थापित करता है
    • $disconnect: क्लाइंट डिसकनेक्ट होता है
    • $default: कोई मैचिंग रूट नहीं मिला

 

WebSocket API फीचर्स

AWS पर एप्लिकेशन विकसित करना

API कैशिंग

  • रिस्पॉन्स कैशिंग से बैकएंड लोड घटता है.
  • API परफॉर्मेंस बेहतर होती है.
  • सामान्य उपयोग केस:
    • बार-बार मांगा जाने वाला डेटा
    • रीड-हेवी APIs
    • Lambda invocations कम करना

 

API कैशिंग

AWS पर एप्लिकेशन विकसित करना

API कैशिंग

 

API cached response

  • cached रिस्पॉन्सेस कॉन्फ़िगरेबल TTL के बाद एक्सपायर होते हैं.
  • स्टेल डेटा मैनेज करें:
    • कैश की expiry सेट करें
    • कैश flush करें
AWS पर एप्लिकेशन विकसित करना

API डिज़ाइन best practices: resource naming स्पष्ट रखें

 

API डिज़ाइन - संज्ञाएँ

  • पाथ्स को actions नहीं, resources दर्शाने चाहिए.
  • verbs नहीं, nouns का उपयोग करें.
  • बेहतर:
    • GET /orders/123
  • बचें:
    • GET /getOrder/123
AWS पर एप्लिकेशन विकसित करना

API डिज़ाइन best practices: APIs का version करें

 

APIs का Versioning

  • APIs का version करें ताकि वे समय के साथ सुरक्षित रूप से evolve हों.
  • मौजूदा क्लाइंट्स न टूटें.
  • आम तरीक़े:
    • URI वर्ज़निंग: GET /v1/orders
    • क्वेरी पैरामीटर: GET /orders?version=1
    • HTTP हेडर: Accept-Version: v1
AWS पर एप्लिकेशन विकसित करना

API डेवलपर पोर्टल्स

  • REST APIs को वेब पोर्टल के ज़रिए पब्लिश और शेयर करें.
  • API कंज़्यूमर्स को डॉक्यूमेंटेशन दें.
  • मुख्य फ़ीचर्स:
    • API डॉक्यूमेंटेशन (Swagger फाइल्स)
    • कंज़्यूमर ऑनबोर्डिंग
    • SDK डाउनलोड्स
    • API key रजिस्ट्रेशन और सब्सक्रिप्शन फ्लोज़

 

api gateway पोर्टल

AWS पर एप्लिकेशन विकसित करना

OpenAPI स्पेसिफिकेशंस

  • OpenAPI (Swagger): REST APIs का स्टैंडर्ड वर्णन.
  • API Gateway OpenAPI specs इम्पोर्ट/एक्सपोर्ट कर सकता है.

 

API Gateway में Swagger सपोर्ट

AWS पर एप्लिकेशन विकसित करना

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

AWS पर एप्लिकेशन विकसित करना

Preparing Video For Download...