Асинхронні виклики у версії 4.x

← Асинхронні виклики у версії 4.x

Ashterix

docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api

uk/docs/api/sdk/client/async/v4.md новий файл +23 −0

1 + # Асинхронні виклики у версії 4.x
2 +
3 + :::warning subtitle="Версія 4.x"
4 + Актуальний опис — на сторінці [Асинхронні виклики](/docs/api/sdk/client/async).
5 + :::
6 +
7 + У 4.x асинхронні класи працювали безпосередньо з Symfony Messenger і AMQP:
8 +
9 + * перший аргумент конструктора — Symfony `TransportFactoryInterface` (зазвичай `AmqpTransportFactory`);
10 + * AMQP-специфіка (черга, опції, `AmqpStamp`) була всередині `AbstractAsyncProcedure`;
11 + * аргументу `transportName` не було — використовувався транспорт `rpc_async`, плейсхолдер секрету — `{rpc_async_secret}`;
12 + * `SdkConfigs::getApiEndpoint(string $vendor, bool $sync = true)`.
13 +
14 + ## Оновлення до 5.x
15 +
16 + 1. Встановіть `ufo-tech/component-transport-amqp` (і `ext-amqp`).
17 + 2. Перший аргумент асинхронних класів — `Ufo\Component\TransportContracts\AsyncTransportFactory` з `AMQPTransportResolver`; новий четвертий аргумент `transportName`.
18 + 3. `SdkConfigs::getApiEndpoint(string $vendor, string $transportName)`; константи `SdkConfigs::SYNC` / `ASYNC` прибрано — використовуйте `RpcTransport::SYNC_PREFIX` / `ASYNC_PREFIX`.
19 + 4. Запасний варіант зі старим ключем `async` у yaml прибрано.
20 + 5. `AsyncTransport::PLACEHOLDER` тепер формат `{%s_secret}`; для назви `rpc_async` текст плейсхолдера не змінився.
21 + 6. Перегенеруйте SDK.
22 +
23 + У Symfony оновлюйте разом із [SDK Bundle 4.0](/docs/api/sdk/bundle) — він реєструє `AsyncTransportFactory` автоматично.