SDK для JSON-RPC API

This page has not been translated yet, showing the version in: UK.

SDK для JSON-RPC API

SDK UFO-Tech генерує типізований клієнт для будь-якого JSON-RPC сервера з його документації OpenRPC: класи процедур з методами, DTO і enum. Замість ручного складання JSON ви викликаєте звичайні PHP-методи й отримуєте об'єкти.

Найкраще SDK працює з серверами на JsonRpcBundle: GET /rpc уже віддає документацію, з якої будується клієнт, а спеціальні параметри $rpc (callback, timeout, rayId, обхід кешу) і асинхронні транспорти підтримуються з обох боків.

Як це працює

сервер (JsonRpcBundle)                   ваш застосунок
──────────────────────                   ─────────────────────────────────────────
GET /rpc → OpenRPC  ──── генерація ───►  App\Sdk\Orders\UserSDK, DTO\UserDto, Enums\...
POST /rpc           ◄─── виклик ───────  $userSdk->get(5) → UserDto
черга (AMQP)        ◄─── async ────────  $asyncUserSdk->get(5) → true
  1. Генерація. SDK читає документ OpenRPC (за URL або з файлу) і створює класи процедур, DTO, enum та файл з адресами серверів sdk_config.yaml.dist.
  2. Виклик. Метод згенерованого класу валідує параметри, надсилає JSON-RPC запит і перетворює результат на DTO, enum чи колекції.
  3. Помилки сервера перетворюються на винятки з кодами JSON-RPC.

Пакети

Пакет Що це Коли потрібен
JSON-RPC Client SDK (ufo-tech/json-rpc-client-sdk) Бібліотека: генератор і базові класи процедур Будь-який PHP-проєкт; основа для SDK Bundle
JSON-RPC SDK Bundle (ufo-tech/json-rpc-sdk-bundle) Інтеграція в Symfony: конфіг постачальників API, консольні команди, автовайринг згенерованих класів і токенів Symfony-застосунок, що викликає один чи кілька JSON-RPC API
ufo-tech/component-transport-contracts, ufo-tech/component-transport-amqp Контракти й AMQP-реалізація асинхронних викликів Асинхронні виклики через черги
RPC TS SDK (@ufotech/rpc-ts-sdk) TypeScript-інтерфейси зі схем OpenRPC Фронтенд і Node.js-клієнти

Сумісність версій

Станом на 2026-10-19:

SDK Bundle Client SDK PHP Symfony
4.0 ^5.0 >= 8.4 ^7.3 | ^8.0
3.2 ^4.3 >= 8.3 ^7.3
3.1 ^4.1 >= 8.3 ^7.3

Client SDK 5.x сам по собі потребує PHP >= 8.3 і Symfony ^7.2 | ^8.0. З сервером зв'язок іде через документ OpenRPC, тож жорсткої прив'язки до версії JsonRpcBundle немає; асинхронні виклики потребують на сервері транспорт з назвою, що починається з rpc_async, і docs.async_dsn_info: true.

З чого почати