Каждый вызов SDK
PHPТочка входа каждого SDK, его модули и каждый вызов, который они предлагают, — с запросом API, который делает вызов, разрешением, которое ему нужно, и ключом идемпотентности, который он несёт.
Всё, что делает SDK, идёт через одну точку входа, которую собирают один раз с её опциями. Эта страница показывает, как вызовы от неё отходят, и перечисляет каждый вызов SDK на языке, на котором вы её читаете, с запросом, который каждый отправляет в API.
Точка входа и её модули
Точка входа — SlenSdk, которую собирает SlenSdk::create() поверх SlenConfig. Каждый модуль — метод, который его возвращает, — operations(), executions(), customers() и webhooks(), — а health() принадлежит самому SDK. WebhooksFacade::standalone() собирает один только модуль вебхуков поверх его WebhooksOptions — для приёмника, у которого нет API-ключа. withLogger() возвращает копию SDK, которая пишет журнал в другой логгер, — Журнал. В Laravel фасад Slen вызывает тот же SDK — Интеграция с Laravel.
С какими опциями собирают SDK, перечисляет статья Конфигурация.
Каждый вызов
| Метод | HTTP-запрос | Разрешение | Idempotency-Key |
|---|---|---|---|
customers()->adjustadjust(string $externalUserId, string $credits, ?Slen\Sdk\Modules\Customers\Options\MovementOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTO | POST /v1/customers/{externalUserId}/adjust | customers:write | Отправляется; если не передать свой, SDK создаёт его сам |
customers()->blockblock(string $externalUserId, ?Slen\Sdk\Modules\Customers\Options\BlockOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTO | POST /v1/customers/{externalUserId}/block | customers:write | — |
customers()->chargecharge(string $externalUserId, string $credits, ?Slen\Sdk\Modules\Customers\Options\MovementOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTO | POST /v1/customers/{externalUserId}/charge | customers:write | Отправляется; если не передать свой, SDK создаёт его сам |
customers()->createcreate(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTO | PUT /v1/customers/{externalUserId} | customers:write | — |
customers()->deletedelete(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): void | DELETE /v1/customers/{externalUserId} | customers:write | — |
customers()->entriesentries(string $externalUserId, ?Slen\Sdk\Modules\Customers\Options\EntryListOptions $options = null): Slen\Sdk\Modules\Customers\Data\CreditEntryPageDTO | GET /v1/customers/{externalUserId}/entries | customers:read | — |
customers()->getget(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTO | GET /v1/customers/{externalUserId} | customers:read | — |
customers()->listlist(?Slen\Sdk\Modules\Customers\Options\CustomerListOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerPageDTO | GET /v1/customers | customers:read | — |
customers()->pricesprices(?Slen\Sdk\Modules\Customers\Options\PriceListOptions $options = null): array | GET /v1/credit-prices | customers:read | — |
customers()->topUptopUp(string $externalUserId, string $credits, ?Slen\Sdk\Modules\Customers\Options\MovementOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTO | POST /v1/customers/{externalUserId}/topup | customers:write | Отправляется; если не передать свой, SDK создаёт его сам |
customers()->unblockunblock(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTO | POST /v1/customers/{externalUserId}/unblock | customers:write | — |
customers()->updateAccountupdateAccount(string $externalUserId, string $creditType, ?Slen\Sdk\Modules\Customers\Options\AccountOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTO | PUT /v1/customers/{externalUserId}/accounts/{creditType} | customers:write | — |
executions()->getget(string $executionId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Executions\Data\ExecutionStatusDTO | GET /v1/executions/{id}/status | read | — |
executions()->tracetrace(string $executionId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Executions\Data\ExecutionTraceDTO | GET /v1/executions/{id} | read | — |
executions()->waitwait(string $executionId, ?Slen\Sdk\Modules\Executions\Options\WaitOptions $options = null): Slen\Sdk\Modules\Executions\Data\ExecutionStatusDTO | GET /v1/executions/{id}/status | read | — |
healthhealth(?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Data\HealthDTO | GET /health | — | — |
operations()->executeexecute(string $operation, array $input, ?Slen\Sdk\Modules\Operations\Options\ExecuteOptions $options = null): Slen\Sdk\Modules\Operations\Data\ExecutionDTO | POST /v1/operations/execute | gateway:write | Отправляется; если не передать свой, SDK создаёт его сам |
operations()->executeAsyncexecuteAsync(string $operation, array $input, ?Slen\Sdk\Modules\Operations\Options\ExecuteOptions $options = null): Slen\Sdk\Modules\Operations\Data\ExecutionDTO | POST /v1/operations/execute | gateway:write | Отправляется; если не передать свой, SDK создаёт его сам |
webhooks()->constructEventconstructEvent(string $payload, ?string $signatureHeader, ?Slen\Sdk\Modules\Webhooks\Options\VerifyOptions $options = null): Slen\Sdk\Modules\Webhooks\Data\WebhookEventDTO | Запроса к API нет | — | — |
webhooks()->verifyverify(string $payload, ?string $signatureHeader, ?Slen\Sdk\Modules\Webhooks\Options\VerifyOptions $options = null): bool | Запроса к API нет | — | — |
HTTP-запрос — операция API, которую отправляет вызов, со ссылкой на её страницу в разделе API. Вызов без запроса работает внутри SDK: два вызова вебхуков проверяют доставку там, куда она пришла.
Разрешение — то, что нужно API-ключу для этого запроса. Что включает каждое разрешение, говорит статья Аутентификация.
Idempotency-Key говорит, несёт ли запрос этот заголовок. Такой вызов создаёт ключ, когда вы не передали свой, и отправляет ваш, когда передали: когда передавать свой, говорит статья Ключи идемпотентности.
Для чего вызовы:
operations.execute()иoperations.executeAsync()запускают флоу — Отправить запрос, Асинхронные запуски и ожидание.executions.get(),executions.wait()иexecutions.trace()читают выполнение — Асинхронные запуски и ожидание.Вызовы
customersведут ваших клиентов и их кредиты — Клиенты и кредиты.webhooks.verify()иwebhooks.constructEvent()проверяют доставку вебхука — Вебхуки.health()читает, обслуживает ли API запросы. Зависимость, которая не работает, названа в теле ответа, а не в его статусе.
SDK может отправить любой вызов ещё раз, когда ответа не было, после 429 или 503 — Повторы и таймауты. Вызов, который не удался, выбрасывает ошибку того типа, который определяет код ответа, — Обработка ошибок. Ошибки, которые SDK выбрасывает сам, без ответа API, перечисляет статья Типы ошибок.
Что читать дальше
Объекты ответа — что возвращает каждый вызов.
PHP и Node.js — два SDK рядом.
Конфигурация — опции SDK.
Собрано из openapi b070e1f, sdk contract 6a2e0e0, php 4089db3, node 0fa87be