Асинхронні виклики у версії 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 new file +23 −0

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

Версія 4.x

Актуальний опис — на сторінці Асинхронні виклики.

У 4.x асинхронні класи працювали безпосередньо з Symfony Messenger і AMQP:

  • перший аргумент конструктора — Symfony TransportFactoryInterface (зазвичай AmqpTransportFactory);
  • AMQP-специфіка (черга, опції, AmqpStamp) була всередині AbstractAsyncProcedure;
  • аргументу transportName не було — використовувався транспорт rpc_async, плейсхолдер секрету — {rpc_async_secret};
  • SdkConfigs::getApiEndpoint(string $vendor, bool $sync = true).

Оновлення до 5.x

  1. Встановіть ufo-tech/component-transport-amqp (і ext-amqp).
  2. Перший аргумент асинхронних класів — Ufo\Component\TransportContracts\AsyncTransportFactory з AMQPTransportResolver; новий четвертий аргумент transportName.
  3. SdkConfigs::getApiEndpoint(string $vendor, string $transportName); константи SdkConfigs::SYNC / ASYNC прибрано — використовуйте RpcTransport::SYNC_PREFIX / ASYNC_PREFIX.
  4. Запасний варіант зі старим ключем async у yaml прибрано.
  5. AsyncTransport::PLACEHOLDER тепер формат {%s_secret}; для назви rpc_async текст плейсхолдера не змінився.
  6. Перегенеруйте SDK.

У Symfony оновлюйте разом із SDK Bundle 4.0 — він реєструє AsyncTransportFactory автоматично.