PHP і Node.js: що підтримує кожен SDK
PHPКожен виклик двох SDK поруч і чим ще вони відрізняються — середовище виконання, HTTP-клієнт, журнал, спани, Laravel.
Slen має два SDK — для PHP і для Node.js. Вони звертаються до одного API, мають однакові виклики, кидають той самий тип помилки для кожного коду й пишуть однаковий журнал і однакові спани. Ця сторінка їх порівнює.
Виклики
Виклик називається однаково в обох SDK: operations.execute — це slen.operations.execute() у Node.js і $slen->operations()->execute() у PHP.
| Метод | PHP | Node.js |
|---|---|---|
customers.adjust | Так | Так |
customers.block | Так | Так |
customers.charge | Так | Так |
customers.create | Так | Так |
customers.delete | Так | Так |
customers.entries | Так | Так |
customers.get | Так | Так |
customers.list | Так | Так |
customers.prices | Так | Так |
customers.topUp | Так | Так |
customers.unblock | Так | Так |
customers.updateAccount | Так | Так |
executions.get | Так | Так |
executions.trace | Так | Так |
executions.wait | Так | Так |
flush | Ні | Так |
health | Так | Так |
operations.execute | Так | Так |
operations.executeAsync | Так | Так |
webhooks.constructEvent | Так | Так |
webhooks.verify | Так | Так |
Виклики одного SDK із запитом, який робить кожен, перелічує стаття Клієнт і методи.
Чим ще вони відрізняються
| Що | PHP | Node.js |
|---|---|---|
| Пакет | slen/sdk | @slen/sdk |
| Середовище виконання | PHP 8.3 або новіший | Node.js 20.3 або новіший |
| HTTP-клієнт | Будь-який клієнт PSR-18 вашого застосунку: Guzzle, Symfony HttpClient чи інший | fetch середовища виконання |
| Ключ із середовища | Ні: передайте його в SlenConfig. У Laravel його читає файл конфігурації | Так, SLEN_API_KEY — Конфігурація |
| Логер журналу | Логер PSR-3 | console або об’єкт із тими самими чотирма методами |
| Спани в лог | Так, Psr3SpanRecorder | Так, LoggerSpanRecorder |
| Спани в OpenTelemetry | Ні: реалізуйте власний записувач | Так, через OTLP або в трасування вашого застосунку — Спани |
| Надсилання того, що тримає записувач, перед виходом | Не потрібне: спан пишеться одразу | flush() |
| Очікування без обмеження в часі | Ні: обмеження очікування — ціле число секунд | Так, timeoutSeconds, що дорівнює Infinity |
| Завершення виклику чи очікування ззовні | Ні | Так, signal |
| Тайм-аут одного виклику | Так, timeout опцій виклику | Так, timeoutMs виклику |
| Повтори одного виклику | Так, retries опцій виклику | Так, retries виклику |
| Приймач вебхуків без API-ключа | WebhooksFacade::standalone(), його секрет — у WebhooksOptions | webhooks, який експортує пакет, секрет — в опціях кожного виклику |
| Laravel: сервіс-провайдер, фасад і файл конфігурації | Так — Інтеграція з Laravel | Ні |
| Тестовий дублер мережі | FakeHttpClient | FakeFetch — Тестування інтеграції |
| Результат виклику | Об’єкт із властивостями в camel case | Відповідь API з її іменами полів |
Що спільного у двох SDK: ті самі типи помилок для тих самих кодів (Типи помилок), ті самі події журналу (Журнал), ті самі десять полів спану (Спани) і ті самі правила того, що надсилається ще раз (Повтори й тайм-аути).
Що читати далі
Огляд — що роблять із SDK.
Встановлення — що потрібно кожному SDK.
Клієнт і методи — кожен виклик одного SDK.
Зібрано з openapi b070e1f, sdk contract 6a2e0e0, php 4089db3, node 0fa87be