इसे छोड़कर कंटेंट पर जाएं

क्विकस्टार्ट गाइड

अपना पहला रेज़िलिएंट API कॉल 5 मिनट से कम में चालू करें।

चरण 1: अपनी API Key प्राप्त करें

Section titled “चरण 1: अपनी API Key प्राप्त करें”

mirapi.io पर साइन अप करें और डैशबोर्ड खोलें। एक ग्रुप बनाएं और अपनी पहली API key जेनरेट करें। आपकी key इस तरह दिखेगी:

Terminal window
export MIRAPI_KEY="la_5fa62960e7c9af7c***"

चरण 2: अपना पहला प्रॉक्सी अनुरोध करें

Section titled “चरण 2: अपना पहला प्रॉक्सी अनुरोध करें”

अपना अनुरोध https://proxy.mirapi.io/ पर भेजें और X-Target-URL हेडर में गंतव्य URL निर्दिष्ट करें:

Terminal window
# 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: रेज़िलिएंस हेडर जोड़ें”

अपने कॉल को रिट्री लॉजिक, टाइमआउट और स्मार्ट कैशिंग से बेहतर बनाएं:

Terminal window
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"}'

चरण-दर-चरण क्या होता है:

  1. अनुरोध आता है -> आपकी key सत्यापित होती है
  2. बॉडी में कार्ड नंबर स्कैन किए जाते हैं (कोई नहीं मिला -> जारी रहता है)
  3. Idempotency key SHA256(ClientID + TargetURL + Method + Body) से स्वतः गणना की जाती है
  4. api.stripe.com के लिए सर्किट ब्रेकर जाँचा जाता है -> वर्तमान में CLOSED -> आगे बढ़ता है
  5. अनुरोध 5 सेकंड के कुल टाइमआउट और 1 सेकंड के प्रयास टाइमआउट के साथ Stripe को फॉरवर्ड होता है
  6. यदि Stripe 5xx लौटाता है या टाइमआउट होता है (व्यक्तिगत प्रयास 1s पर सीमित) -> 5s की कुल सीमा के भीतर एक्सपोनेंशियल बैकऑफ के साथ 3 बार तक रिट्राई
  7. यदि सभी रिट्राई विफल हो जाते हैं -> इस सटीक अनुरोध के लिए पिछले सफल जवाब हेतु Smart Cache जाँचा जाता है

चरण 4: जवाब सत्यापित करें

Section titled “चरण 4: जवाब सत्यापित करें”

यदि अनुरोध कैश से बचाया गया था, तो आपको X-Rescued हेडर दिखेगा:

HTTP/1.1 200 OK
X-Rescued: cache
Content-Type: application/json
{
"id": "ch_3Pz9...",
"status": "succeeded"
}

यदि अनुरोध पहली बार में सफल हुआ, तो कोई X-Rescued हेडर नहीं जोड़ा जाता — यह केवल तभी मौजूद होता है जब कोई बचाव तंत्र उपयोग किया गया हो।

चरण 5: पूर्व-कॉन्फ़िगर रूट का उपयोग करें (वैकल्पिक)

Section titled “चरण 5: पूर्व-कॉन्फ़िगर रूट का उपयोग करें (वैकल्पिक)”

जटिल मल्टी-टार्गेट परिदृश्यों के लिए, अपने डैशबोर्ड में एक रूट कॉन्फ़िगर करें और X-Target-URL की जगह X-Route-Key उपयोग करें:

Terminal window
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-Keyla_5fa629...आवश्यक। आपकी MirApi प्रमाणीकरण key
X-Target-URLhttps://api.stripe.com/v1/chargesगंतव्य API एंडपॉइंट (X-Route-Key उपयोग न करने पर आवश्यक)
X-Route-Keystripe-chargesX-Target-URL की जगह पूर्व-कॉन्फ़िगर डैशबोर्ड रूट उपयोग करें
X-Identity-KeyBearer sk_live_...अपस्ट्रीम को Authorization हेडर के रूप में भेजा जाता है (अस्थायी — कभी संग्रहीत नहीं)
X-Proxy-Master-Keymy-master-passphraseडेटाबेस में संग्रहीत एन्क्रिप्टेड क्रेडेंशियल के लिए डिक्रिप्शन key
X-Credential-ID4a2e5d18-...X-Proxy-Master-Key लुकअप के लिए स्पष्ट क्रेडेंशियल UUID
X-Proxy-Auth-HeaderX-API-Keyगंतव्य HTTP हेडर नाम ओवरराइड करता है (डिफ़ॉल्ट: Authorization)
X-Proxy-Auth-TemplateBearer {{secret}}प्राधिकरण हेडर का प्रारूप परिभाषित करता है, {{secret}} को प्रतिस्थापित करता है (डिफ़ॉल्ट: Bearer {{secret}})
X-Retry-Count35xx या कनेक्शन विफलता पर अधिकतम रिट्राई प्रयास
X-Retry-Delay100msएक्सपोनेंशियल बैकऑफ के लिए बेस देरी (जैसे, 100ms, 1s)
X-Proxy-Timeout5sकुल अनुरोध टाइमआउट (जैसे, 500ms, 5s, 30s)
X-Attempt-Timeout1sव्यक्तिगत प्रयास टाइमआउट (जैसे, 200ms, 1s, 5s)
X-Circuit-Breakeronटार्गेट होस्ट के लिए सर्किट ब्रेकर सक्षम करें
X-Smart-Cache60sसफल जवाबों के लिए कैश TTL; विफलता पर फॉलबैक के रूप में उपयोग किया जाता है
X-Failover-URLhttps://backup-api.com/v1/chargesप्राथमिक पर सभी रिट्राई विफल होने पर द्वितीयक एंडपॉइंट
X-Webhook-Callbackhttps://your-app.com/webhookasync मोड सक्षम करें — 202 Accepted लौटाता है, परिणाम आपके कॉलबैक पर POST करता है
X-Proxy-Idempotency-Keyorder_789_attempt_1कस्टम idempotency key (न देने पर स्वतः गणना की जाती है)
X-Extract-Redirect$.url || $.checkoutUrlसफल 2xx जवाब से पहला मिला URL निकालता है (
X-Extract-Map.id =>charge_id,.status =>data.stateJSON जवाब को पुनर्संरचित करता है। एकाधिक फ़ील्ड मैपिंग, नेस्टेड ऑब्जेक्ट बनाना, arrays ([]) मैपिंग, और वैल्यू फ़ॉर्मेटिंग टेम्पलेट लागू करना समर्थित है