Что возвращает каждый вызов SDK
PHPОбъекты, которые возвращают вызовы SDK, — выполнение, его трассировка, клиент, счёт, строка выписки, страница — и какое поле ответа API несёт каждое их поле.
Вызов SDK возвращает объект, который несёт ответ API. Эта страница называет объект, который возвращает каждый вызов, и говорит, каким полем ответа является каждое его поле.
Как устроен результат
Результат — объект, свойства которого нельзя изменить. У него есть свойство для каждого поля ответа, названное в camel case. Сумма денег или кредитов — десятичная строка, никогда не float; идентификатор — строка; время — DateTimeImmutable; статус — enum: ExecutionStatus, CustomerStatus, CreditEntryType. Если в ответе не хватает поля или значение другого типа, выбрасывается InvalidResponseException, а не возвращается результат со значением по умолчанию на этом месте.
Какой вызов что возвращает
| Результат | Кто возвращает |
|---|---|
ExecutionDTO | operations()->execute(), operations()->executeAsync() |
ExecutionStatusDTO | executions()->get(), executions()->wait() |
ExecutionTraceDTO | executions()->trace() |
CustomerDTO | customers()->get(), customers()->create(), customers()->block(), customers()->unblock() |
CustomerAccountDTO | customers()->updateAccount(), customers()->topUp(), customers()->charge(), customers()->adjust() |
CustomerPageDTO | customers()->list() |
CreditEntryPageDTO | customers()->entries() |
Список CreditPriceDTO | customers()->prices() |
HealthDTO | health() |
customers.delete() ничего не возвращает. События вебхука описывает статья Вебхуки.
Выполнение
Каждое поле выполнения описывает статья Отправить запрос.
| Свойство | Поле ответа |
|---|---|
executionId | execution_id |
status | status, как ExecutionStatus |
operationCode | operation |
output | output |
errorCode | error_code |
errorMessage | error_message |
error | error, как ExecutionErrorDTO с code и message |
cost | cost, как ExecutionCostDTO с estimated и actual |
cache | cache, как ExecutionCacheDTO с hit и cachedAt |
waitingOn | waiting_on, как WaitingOnDTO с nodeKey, type и resumeAt |
traceUrl | trace_url |
retryAfterSeconds | retry_after_seconds |
replayed | replayed |
У ExecutionStatusDTO, того же выполнения, прочитанного позже, есть все свойства, кроме error и replayed. У обоих четыре метода, которые читают статус: isCompleted(), isRejected(), isPending() — выполнение queued, waiting или running — и isFinished(), который истинен, когда у выполнения нет ни одного из этих статусов.
Трассировка выполнения
ExecutionTraceDTO — выполнение с nodes — каждым узлом, через который оно прошло, по порядку, каждый — TraceNodeDTO с его попытками у провайдеров, — и events, событиями его трассировки, каждое — TraceEventDTO. Тип узла, его статус и тип события остаются строками: более поздняя версия Slen может добавить новые.
Поля — те же, что у GET /v1/executions/{id} в статье Выполнения.
Клиент и счёт
Для чего клиент и счёт, говорит статья Клиенты и кредиты.
Свойство CustomerDTO | Поле ответа |
|---|---|
customerId | customer_id |
externalUserId | external_user_id |
status | status, как CustomerStatus |
blockedAt | blocked_at |
blockReason | block_reason |
accounts | accounts, каждый — CustomerAccountDTO |
createdAt | created_at |
updatedAt | updated_at |
CustomerDTO::isBlocked() читает статус, а CustomerDTO::account() даёт счёт одного типа кредитов или null, когда у клиента нет счёта этого типа.
Свойство CustomerAccountDTO | Поле ответа |
|---|---|
customerAccountId | customer_account_id |
customerId | customer_id |
projectId | project_id |
externalUserId | external_user_id |
creditType | credit_type |
balance | balance |
reserved | reserved |
available | available |
allowNegative | allow_negative |
lowBalanceThreshold | low_balance_threshold |
createdAt | created_at |
updatedAt | updated_at |
Поля — те же, что у GET /v1/customers/{externalUserId} в статье Клиенты и кредиты.
Выписка и цены
CreditEntryDTO — одно движение выписки: entryId, customerAccountId, externalUserId, creditType, entryType — это CreditEntryType, — credits со знаком, balanceAfter, availableAfter, reservationId, note и createdAt. CreditPriceDTO — цена одной операции в одном типе кредитов: creditPriceId, projectId, operationCode, creditType, credits, createdAt и updatedAt.
Страница
У PageDTO есть data — строки страницы — и nextCursor — курсор следующей страницы. hasMore() истинен, пока курсор есть.
Передайте курсор в следующий вызов и остановитесь, когда он равен null. Полная последняя страница ещё может нести курсор; тогда страница после неё пустая.
Что читать дальше
Клиент и методы — каждый вызов SDK с запросом, который он делает.
Отправить запрос — каждое поле выполнения.
Обработка ошибок — что вызов выбрасывает вместо того, чтобы вернуть.