Каждый вызов 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\CustomerAccountDTOPOST /v1/customers/{externalUserId}/adjustcustomers:writeОтправляется; если не передать свой, SDK создаёт его сам
customers()->blockblock(string $externalUserId, ?Slen\Sdk\Modules\Customers\Options\BlockOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTOPOST /v1/customers/{externalUserId}/blockcustomers:write—
customers()->chargecharge(string $externalUserId, string $credits, ?Slen\Sdk\Modules\Customers\Options\MovementOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTOPOST /v1/customers/{externalUserId}/chargecustomers:writeОтправляется; если не передать свой, SDK создаёт его сам
customers()->createcreate(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTOPUT /v1/customers/{externalUserId}customers:write—
customers()->deletedelete(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): voidDELETE /v1/customers/{externalUserId}customers:write—
customers()->entriesentries(string $externalUserId, ?Slen\Sdk\Modules\Customers\Options\EntryListOptions $options = null): Slen\Sdk\Modules\Customers\Data\CreditEntryPageDTOGET /v1/customers/{externalUserId}/entriescustomers:read—
customers()->getget(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTOGET /v1/customers/{externalUserId}customers:read—
customers()->listlist(?Slen\Sdk\Modules\Customers\Options\CustomerListOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerPageDTOGET /v1/customerscustomers:read—
customers()->pricesprices(?Slen\Sdk\Modules\Customers\Options\PriceListOptions $options = null): arrayGET /v1/credit-pricescustomers:read—
customers()->topUptopUp(string $externalUserId, string $credits, ?Slen\Sdk\Modules\Customers\Options\MovementOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTOPOST /v1/customers/{externalUserId}/topupcustomers:writeОтправляется; если не передать свой, SDK создаёт его сам
customers()->unblockunblock(string $externalUserId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerDTOPOST /v1/customers/{externalUserId}/unblockcustomers:write—
customers()->updateAccountupdateAccount(string $externalUserId, string $creditType, ?Slen\Sdk\Modules\Customers\Options\AccountOptions $options = null): Slen\Sdk\Modules\Customers\Data\CustomerAccountDTOPUT /v1/customers/{externalUserId}/accounts/{creditType}customers:write—
executions()->getget(string $executionId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Executions\Data\ExecutionStatusDTOGET /v1/executions/{id}/statusread—
executions()->tracetrace(string $executionId, ?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Modules\Executions\Data\ExecutionTraceDTOGET /v1/executions/{id}read—
executions()->waitwait(string $executionId, ?Slen\Sdk\Modules\Executions\Options\WaitOptions $options = null): Slen\Sdk\Modules\Executions\Data\ExecutionStatusDTOGET /v1/executions/{id}/statusread—
healthhealth(?Slen\Sdk\RequestOptions $options = null): Slen\Sdk\Data\HealthDTOGET /health——
operations()->executeexecute(string $operation, array $input, ?Slen\Sdk\Modules\Operations\Options\ExecuteOptions $options = null): Slen\Sdk\Modules\Operations\Data\ExecutionDTOPOST /v1/operations/executegateway:writeОтправляется; если не передать свой, SDK создаёт его сам
operations()->executeAsyncexecuteAsync(string $operation, array $input, ?Slen\Sdk\Modules\Operations\Options\ExecuteOptions $options = null): Slen\Sdk\Modules\Operations\Data\ExecutionDTOPOST /v1/operations/executegateway: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 говорит, несёт ли запрос этот заголовок. Такой вызов создаёт ключ, когда вы не передали свой, и отправляет ваш, когда передали: когда передавать свой, говорит статья Ключи идемпотентности.

Для чего вызовы:

SDK может отправить любой вызов ещё раз, когда ответа не было, после 429 или 503 — Повторы и таймауты. Вызов, который не удался, выбрасывает ошибку того типа, который определяет код ответа, — Обработка ошибок. Ошибки, которые SDK выбрасывает сам, без ответа API, перечисляет статья Типы ошибок.

Что читать дальше

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