क्विकस्टार्ट गाइड
अपना पहला रेज़िलिएंट API कॉल 5 मिनट से कम में चालू करें।
चरण 1: अपनी API Key प्राप्त करें
Section titled “चरण 1: अपनी API Key प्राप्त करें”mirapi.io पर साइन अप करें और डैशबोर्ड खोलें। एक ग्रुप बनाएं और अपनी पहली API key जेनरेट करें। आपकी key इस तरह दिखेगी:
export MIRAPI_KEY="la_5fa62960e7c9af7c***"चरण 2: अपना पहला प्रॉक्सी अनुरोध करें
Section titled “चरण 2: अपना पहला प्रॉक्सी अनुरोध करें”अपना अनुरोध https://proxy.mirapi.io/ पर भेजें और X-Target-URL हेडर में गंतव्य URL निर्दिष्ट करें:
# Stripe को सीधा मूल कॉलcurl -X POST https://api.stripe.com/v1/customers \ -H "Authorization: Bearer sk_live_..."
# वही कॉल, MirApi के ज़रिए प्रॉक्सी की गईcurl -X POST https://proxy.mirapi.io/ \ -H "X-MirApi-Key: $MIRAPI_KEY" \ -H "X-Target-URL: https://api.stripe.com/v1/customers" \ -H "X-Identity-Key: Bearer sk_live_..."MirApi अनुरोध को इंटरसेप्ट करता है, आपकी key सत्यापित करता है, X-* प्रॉक्सी हेडर हटाता है, X-Identity-Key से Authorization: Bearer sk_live_... इंजेक्ट करता है, और अनुरोध को Stripe पर फॉरवर्ड करता है। Stripe का जवाब आपको बिना किसी बदलाव के वापस मिलता है।
चरण 3: रेज़िलिएंस हेडर जोड़ें
Section titled “चरण 3: रेज़िलिएंस हेडर जोड़ें”अपने कॉल को रिट्री लॉजिक, टाइमआउट और स्मार्ट कैशिंग से बेहतर बनाएं:
curl -X POST https://proxy.mirapi.io/ \ -H "X-MirApi-Key: $MIRAPI_KEY" \ -H "X-Target-URL: https://api.stripe.com/v1/charges" \ -H "X-Identity-Key: Bearer sk_live_..." \ -H "X-Retry-Count: 3" \ -H "X-Retry-Delay: 100ms" \ -H "X-Proxy-Timeout: 5s" \ -H "X-Attempt-Timeout: 1s" \ -H "X-Circuit-Breaker: on" \ -H "X-Smart-Cache: 60s" \ -H "Content-Type: application/json" \ -d '{"amount": 2000, "currency": "usd", "source": "tok_visa"}'चरण-दर-चरण क्या होता है:
- अनुरोध आता है -> आपकी key सत्यापित होती है
- बॉडी में कार्ड नंबर स्कैन किए जाते हैं (कोई नहीं मिला -> जारी रहता है)
- Idempotency key
SHA256(ClientID + TargetURL + Method + Body)से स्वतः गणना की जाती है api.stripe.comके लिए सर्किट ब्रेकर जाँचा जाता है -> वर्तमान में CLOSED -> आगे बढ़ता है- अनुरोध 5 सेकंड के कुल टाइमआउट और 1 सेकंड के प्रयास टाइमआउट के साथ Stripe को फॉरवर्ड होता है
- यदि Stripe
5xxलौटाता है या टाइमआउट होता है (व्यक्तिगत प्रयास 1s पर सीमित) -> 5s की कुल सीमा के भीतर एक्सपोनेंशियल बैकऑफ के साथ 3 बार तक रिट्राई - यदि सभी रिट्राई विफल हो जाते हैं -> इस सटीक अनुरोध के लिए पिछले सफल जवाब हेतु Smart Cache जाँचा जाता है
चरण 4: जवाब सत्यापित करें
Section titled “चरण 4: जवाब सत्यापित करें”यदि अनुरोध कैश से बचाया गया था, तो आपको X-Rescued हेडर दिखेगा:
HTTP/1.1 200 OKX-Rescued: cacheContent-Type: application/json
{ "id": "ch_3Pz9...", "status": "succeeded"}यदि अनुरोध पहली बार में सफल हुआ, तो कोई X-Rescued हेडर नहीं जोड़ा जाता — यह केवल तभी मौजूद होता है जब कोई बचाव तंत्र उपयोग किया गया हो।
चरण 5: पूर्व-कॉन्फ़िगर रूट का उपयोग करें (वैकल्पिक)
Section titled “चरण 5: पूर्व-कॉन्फ़िगर रूट का उपयोग करें (वैकल्पिक)”जटिल मल्टी-टार्गेट परिदृश्यों के लिए, अपने डैशबोर्ड में एक रूट कॉन्फ़िगर करें और X-Target-URL की जगह X-Route-Key उपयोग करें:
curl -X POST https://proxy.mirapi.io/ \ -H "X-MirApi-Key: $MIRAPI_KEY" \ -H "X-Route-Key: stripe-charges" \ -H "Content-Type: application/json" \ -d '{"amount": 2000, "currency": "usd"}'रूट stripe-charges आपके डैशबोर्ड में टार्गेट URL, टाइमआउट, बॉडी मैपिंग नियम और रिस्पॉन्स एक्सट्रैक्शन नियमों के साथ कॉन्फ़िगर है — इनमें से कुछ भी आपके हेडर में रखने की ज़रूरत नहीं है।
त्वरित संदर्भ — सभी समर्थित हेडर
Section titled “त्वरित संदर्भ — सभी समर्थित हेडर”| हेडर | उदाहरण मान | विवरण |
|---|---|---|
X-MirApi-Key | la_5fa629... | आवश्यक। आपकी MirApi प्रमाणीकरण key |
X-Target-URL | https://api.stripe.com/v1/charges | गंतव्य API एंडपॉइंट (X-Route-Key उपयोग न करने पर आवश्यक) |
X-Route-Key | stripe-charges | X-Target-URL की जगह पूर्व-कॉन्फ़िगर डैशबोर्ड रूट उपयोग करें |
X-Identity-Key | Bearer sk_live_... | अपस्ट्रीम को Authorization हेडर के रूप में भेजा जाता है (अस्थायी — कभी संग्रहीत नहीं) |
X-Proxy-Master-Key | my-master-passphrase | डेटाबेस में संग्रहीत एन्क्रिप्टेड क्रेडेंशियल के लिए डिक्रिप्शन key |
X-Credential-ID | 4a2e5d18-... | X-Proxy-Master-Key लुकअप के लिए स्पष्ट क्रेडेंशियल UUID |
X-Proxy-Auth-Header | X-API-Key | गंतव्य HTTP हेडर नाम ओवरराइड करता है (डिफ़ॉल्ट: Authorization) |
X-Proxy-Auth-Template | Bearer {{secret}} | प्राधिकरण हेडर का प्रारूप परिभाषित करता है, {{secret}} को प्रतिस्थापित करता है (डिफ़ॉल्ट: Bearer {{secret}}) |
X-Retry-Count | 3 | 5xx या कनेक्शन विफलता पर अधिकतम रिट्राई प्रयास |
X-Retry-Delay | 100ms | एक्सपोनेंशियल बैकऑफ के लिए बेस देरी (जैसे, 100ms, 1s) |
X-Proxy-Timeout | 5s | कुल अनुरोध टाइमआउट (जैसे, 500ms, 5s, 30s) |
X-Attempt-Timeout | 1s | व्यक्तिगत प्रयास टाइमआउट (जैसे, 200ms, 1s, 5s) |
X-Circuit-Breaker | on | टार्गेट होस्ट के लिए सर्किट ब्रेकर सक्षम करें |
X-Smart-Cache | 60s | सफल जवाबों के लिए कैश TTL; विफलता पर फॉलबैक के रूप में उपयोग किया जाता है |
X-Failover-URL | https://backup-api.com/v1/charges | प्राथमिक पर सभी रिट्राई विफल होने पर द्वितीयक एंडपॉइंट |
X-Webhook-Callback | https://your-app.com/webhook | async मोड सक्षम करें — 202 Accepted लौटाता है, परिणाम आपके कॉलबैक पर POST करता है |
X-Proxy-Idempotency-Key | order_789_attempt_1 | कस्टम idempotency key (न देने पर स्वतः गणना की जाती है) |
X-Extract-Redirect | $.url || $.checkoutUrl | सफल 2xx जवाब से पहला मिला URL निकालता है ( |
X-Extract-Map | .id =>charge_id,.status =>data.state | JSON जवाब को पुनर्संरचित करता है। एकाधिक फ़ील्ड मैपिंग, नेस्टेड ऑब्जेक्ट बनाना, arrays ([]) मैपिंग, और वैल्यू फ़ॉर्मेटिंग टेम्पलेट लागू करना समर्थित है |
अगले चरण
Section titled “अगले चरण”- रिट्राई लूप और बैकऑफ — रिट्राई व्यवहार को बारीकी से ट्यून करें
- स्मार्ट कैश फॉलबैक — अपस्ट्रीम विफलता पर पुराने जवाब परोसें
- सर्किट ब्रेकर — कैस्केडिंग विफलताओं से सुरक्षा करें
- कैस्केड रूटिंग — डैशबोर्ड के ज़रिए कई एंडपॉइंट पर रूट करें
- हेडर संदर्भ — संपूर्ण हेडर दस्तावेज़ीकरण