Посібник швидкого старту
Запустіть перший стійкий API-виклик менш ніж за 5 хвилин.
Крок 1: Отримайте API-ключ
Section titled “Крок 1: Отримайте API-ключ”Зареєструйтесь на mirapi.io, відкрийте дашборд, створіть групу і згенеруйте перший API-ключ:
export MIRAPI_KEY="la_5fa62960e7c9af7c***"Крок 2: Перший проксі-запит
Section titled “Крок 2: Перший проксі-запит”Надішліть запит на https://proxy.mirapi.io/ і вкажіть URL призначення в заголовку X-Target-URL:
# Оригінальний прямий виклик до Stripecurl -X POST https://api.stripe.com/v1/customers \ -H "Authorization: Bearer sk_live_..."
# Той самий виклик, проксійований через MirApicurl -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-кешуванням:
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"}'Що відбувається покроково:
- Запит прибуває → перевіряється ваш ключ
- Тіло сканується на номери карток (не знайдено → продовжує)
- Ключ idempotency автоматично обчислюється з
SHA256(ClientID + TargetURL + Method + Body) - Перевіряється circuit breaker для
api.stripe.com→ CLOSED → продовжує - Запит пересилається до Stripe з тайм-аутом 5 секунд
- Якщо Stripe повертає
5xxабо тайм-аут → до 3 повторів з експоненціальним backoff - Якщо всі повтори провалились → перевіряється 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-Route-Key замість X-Target-URL:
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-Key | la_5fa629... | Обов’язковий. Ваш ключ автентифікації MirApi |
X-Target-URL | https://api.stripe.com/v1/charges | Цільовий API-ендпоінт (обов’язковий якщо не використовується X-Route-Key) |
X-Route-Key | stripe-charges | Використати попередньо налаштований маршрут з дашборду |
X-Identity-Key | Bearer sk_live_... | Пересилається як Authorization до upstream (ефемерний — ніколи не зберігається) |
X-Proxy-Master-Key | my-master-passphrase | Ключ дешифрування для зашифрованих облікових даних з БД |
X-Retry-Count | 3 | Максимальна кількість повторних спроб |
X-Retry-Delay | 100ms | Базова затримка для exponential backoff |
X-Proxy-Timeout | 5s | Тайм-аут на спробу |
X-Circuit-Breaker | on | Увімкнути circuit breaker для цільового хоста |
X-Smart-Cache | 60s | TTL кешу успішних відповідей; використовується як fallback при збоях |
X-Failover-URL | https://backup-api.com/... | Резервний ендпоінт якщо primary провалився |
X-Webhook-Callback | https://your-app.com/webhook | Async-режим — повертає 202 Accepted, POST з результатом на вашу callback-URL |
X-Proxy-Idempotency-Key | order_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-ID | 4a2e5d18-... | Явний UUID облікових даних для пошуку X-Proxy-Master-Key |
Наступні кроки
Section titled “Наступні кроки”- Повтори та Backoff — Тонке налаштування логіки повторів
- Smart Cache Fallback — Стала відповідь при збоях upstream
- Circuit Breakers — Захист від каскадних збоїв
- Каскадна маршрутизація — Маршрутизація через кілька ендпоінтів
- Довідник заголовків — Повна документація заголовків