Перейти до вмісту

Посібник швидкого старту

Запустіть перший стійкий API-виклик менш ніж за 5 хвилин.

Крок 1: Отримайте API-ключ

Section titled “Крок 1: Отримайте API-ключ”

Зареєструйтесь на mirapi.io, відкрийте дашборд, створіть групу і згенеруйте перший API-ключ:

Terminal window
export MIRAPI_KEY="la_5fa62960e7c9af7c***"

Крок 2: Перший проксі-запит

Section titled “Крок 2: Перший проксі-запит”

Надішліть запит на https://proxy.mirapi.io/ і вкажіть URL призначення в заголовку X-Target-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 перехоплює запит, перевіряє ваш ключ, видаляє X-* заголовки, ін’єктує Authorization: Bearer sk_live_... зі значення X-Identity-Key, та пересилає запит до Stripe. Відповідь Stripe повертається вам без змін.

Крок 3: Додайте заголовки надійності

Section titled “Крок 3: Додайте заголовки надійності”

Покращте виклики логікою повторів, тайм-аутом та smart-кешуванням:

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-Circuit-Breaker: on" \
-H "X-Smart-Cache: 60s" \
-H "Content-Type: application/json" \
-d '{"amount": 2000, "currency": "usd", "source": "tok_visa"}'

Що відбувається покроково:

  1. Запит прибуває → перевіряється ваш ключ
  2. Тіло сканується на номери карток (не знайдено → продовжує)
  3. Ключ idempotency автоматично обчислюється з SHA256(ClientID + TargetURL + Method + Body)
  4. Перевіряється circuit breaker для api.stripe.com → CLOSED → продовжує
  5. Запит пересилається до Stripe з тайм-аутом 5 секунд
  6. Якщо Stripe повертає 5xx або тайм-аут → до 3 повторів з експоненціальним backoff
  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-Route-Key замість X-Target-URL:

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

Довідка — Всі підтримувані заголовки

Section titled “Довідка — Всі підтримувані заголовки”
ЗаголовокПриклад значенняОпис
X-MirApi-Keyla_5fa629...Обов’язковий. Ваш ключ автентифікації MirApi
X-Target-URLhttps://api.stripe.com/v1/chargesЦільовий API-ендпоінт (обов’язковий якщо не використовується X-Route-Key)
X-Route-Keystripe-chargesВикористати попередньо налаштований маршрут з дашборду
X-Identity-KeyBearer sk_live_...Пересилається як Authorization до upstream (ефемерний — ніколи не зберігається)
X-Proxy-Master-Keymy-master-passphraseКлюч дешифрування для зашифрованих облікових даних з БД
X-Retry-Count3Максимальна кількість повторних спроб
X-Retry-Delay100msБазова затримка для exponential backoff
X-Proxy-Timeout5sТайм-аут на спробу
X-Circuit-BreakeronУвімкнути circuit breaker для цільового хоста
X-Smart-Cache60sTTL кешу успішних відповідей; використовується як fallback при збоях
X-Failover-URLhttps://backup-api.com/...Резервний ендпоінт якщо primary провалився
X-Webhook-Callbackhttps://your-app.com/webhookAsync-режим — повертає 202 Accepted, POST з результатом на вашу callback-URL
X-Proxy-Idempotency-Keyorder_789_attempt_1Власний ключ idempotency (автоматично обчислюється якщо не вказаний)
X-Extract-Redirect$.url || $.checkoutUrlВитягує перший знайдений URL (підтримує fallback через
X-Extract-Map.id = >charge_id,.status = >data.stateПеребудовує JSON-відповідь. Дозволяє мапити декілька полів, створювати вкладені об’єкти, мапити масиви ([]), а також застосовувати шаблони форматування значень (наприклад, id=>$.label(ID: {value}))
X-Credential-ID4a2e5d18-...Явний UUID облікових даних для пошуку X-Proxy-Master-Key