Кожен виклик 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