← Асинхронні виклики у версії 4.x
docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api
uk/docs/api/sdk/client/async/v4.md
new file +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` автоматично.