SDK
SDK огортають ті частини API, які ви викликаєте з коду застосунку: події, ендпоінти, підписки, доставки, вхідні джерела й вхідні події, а також перевірку підпису. Для автентифікації достатньо API-ключа.
| Мова | Пакет | Встановлення |
|---|---|---|
| Node.js / TypeScript | @railhook/node |
npm install @railhook/node |
| Python | railhook |
pip install railhook |
| PHP 8.1+ | railhook/php |
composer require railhook/php |
SDK для Node.js не має залежностей під час виконання. SDK для PHP потребує ext-json і ext-curl.
Надіслати подію
Section titled “Надіслати подію”import { Railhook } from '@railhook/node';
const client = new Railhook({ apiKey: process.env.RAILHOOK_API_KEY, baseUrl: 'https://railhook.io', // or your instance});
const event = await client.events.send( { type: 'order.completed', data: { orderId: 'ord_12345', amount: 99.99 } }, 'order-12345-completed', // idempotency key, optional);import os
from railhook import Railhook, Event
client = Railhook( api_key=os.environ["RAILHOOK_API_KEY"], base_url="https://railhook.io", # or your instance)
event = client.events.send( Event(type="order.completed", data={"order_id": "ord_12345", "amount": 99.99}), idempotency_key="order-12345-completed",)<?phpuse Railhook\Railhook;
$client = new Railhook( apiKey: getenv('RAILHOOK_API_KEY'), baseUrl: 'https://railhook.io', // or your instance);
$event = $client->events->send( type: 'order.completed', data: ['orderId' => 'ord_12345', 'amount' => 99.99], idempotencyKey: 'order-12345-completed',);Перевірити підпис
Section titled “Перевірити підпис”Передайте сире тіло запиту, заголовок X-Signature і секрет ендпоінта. Перевірка кидає виняток, якщо підпис не збігається або позначка часу застаріла.
import { verifySignature } from '@railhook/node';
verifySignature(rawBody, req.headers['x-signature'], process.env.WEBHOOK_SECRET);from railhook import verify_signature
verify_signature(raw_body, headers.get("X-Signature", ""), os.environ["WEBHOOK_SECRET"])use Railhook\Webhook;
Webhook::verifySignature($payload, $headers['X-Signature'] ?? '', getenv('WEBHOOK_SECRET'));Кожен SDK також має constructEvent (construct_event у Python), що перевіряє й розбирає подію одним викликом. Якщо ваш ендпоінт використовує заголовки Standard Webhooks, застосовуйте verifyStandardWebhook (verify_standard_webhook) із секретом ендпоінта у форматі whsec_.
Що далі
Section titled “Що далі”Надішліть перший вебхукЕндпоінт, підписка, подія й підпис від початку до кінця.
ПідписиОбидві схеми підпису й ротація секретів.
Довідник APIУсі ендпоінти, згенеровані зі специфікації OpenAPI.