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.

МетодPHPNode.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 із запитом, який робить кожен, перелічує стаття Клієнт і методи.

Чим ще вони відрізняються

ЩоPHPNode.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-3console або об’єкт із тими самими чотирма методами
Спани в логТак, Psr3SpanRecorderТак, LoggerSpanRecorder
Спани в OpenTelemetryНі: реалізуйте власний записувачТак, через OTLP або в трасування вашого застосунку — Спани
Надсилання того, що тримає записувач, перед виходомНе потрібне: спан пишеться одразуflush()
Очікування без обмеження в часіНі: обмеження очікування — ціле число секундТак, timeoutSeconds, що дорівнює Infinity
Завершення виклику чи очікування ззовніНіТак, signal
Тайм-аут одного викликуТак, timeout опцій викликуТак, timeoutMs виклику
Повтори одного викликуТак, retries опцій викликуТак, retries виклику
Приймач вебхуків без API-ключаWebhooksFacade::standalone(), його секрет — у WebhooksOptionswebhooks, який експортує пакет, секрет — в опціях кожного виклику
Laravel: сервіс-провайдер, фасад і файл конфігураціїТак — Інтеграція з LaravelНі
Тестовий дублер мережіFakeHttpClientFakeFetch — Тестування інтеграції
Результат викликуОб’єкт із властивостями в camel caseВідповідь API з її іменами полів

Що спільного у двох SDK: ті самі типи помилок для тих самих кодів (Типи помилок), ті самі події журналу (Журнал), ті самі десять полів спану (Спани) і ті самі правила того, що надсилається ще раз (Повтори й тайм-аути).

Що читати далі

Зібрано з openapi b070e1f, sdk contract 6a2e0e0, php 4089db3, node 0fa87be