JsonRpcBundle

JsonRpcBundle

Скачати

Актуальна версія

Категорія

API

Тип

Symfony Bundle

Залежності

php_version symfony_version symfony_version symfony version

Інші відомості

License Size fork

Пакет для легкого створення API за допомогою JSON-RPC сервера

Робити RPC сервіси для сервіс-орієнтованої архітектури на Symfony ще ніколи не було так просто.

Цей пакет дозволяє легко створювати API за допомогою Json-RPC сервера для Symfony v.6.*. Він підходить для розробників, які хочуть швидко і ефективно інтегрувати RPC функціонал у свої проекти.

На відміну від інших реалізацій Json-RPC в php, ця бібліотека транспортно незалежна і може приймати не лише синхронні HTTP(S) запити, ви можете налаштувати асинхронний транспорт для виклику API.

Основні переваги

  • Простота інтеграції: Інтеграція пакету з вашим проектом є надзвичайно простою. Вам потрібно лише додати спеціальний інтерфейс до будь-якого існуючого класу, і він автоматично отримає можливість обробляти JSON-RPC запити.
  • Гнучкість: Пакет забезпечує велику гнучкість при створенні API, дозволяючи розробникам легко розширювати і модифікувати поведінку сервера без втручання у вже існуючий код.
  • Ефективність: Завдяки оптимізації викликів і використанню сучасних компонентів Symfony, пакет гарантує високу продуктивність при обробці запитів.

Версія 10.0.0

Ключові зміни

  • Додано/уніфіковано підтримку API versioning у RPC-сервісі.
  • Нормалізовано формат API-документації та проведено рефакторинг документаційного шару.
  • Проведено загальний рефакторинг сервера для стабільнішої роботи в Symfony 7.x.

ServiceMap та DI

  • Перенесено побудову ServiceMap у compiler pass.
  • Додано підтримку #[Autowire] сервісів у RPC-методах.
  • Винесено non-service класи з мапи сервісів і спрощено ServiceLocator-ланцюг.

Конвертори параметрів

  • Додано Doctrine parameter converter.
  • Покращено обробку enum-definition у параметрах і схемах.

Зміни оточення

  • PHP: без змін (>=8.3).
  • Symfony: без змін (основні компоненти залишились на ^7.2).
  • ufo-tech:
    • додано ufo-tech/packages:^1
    • ufo-tech/dto-transformer: ^2 -> ^2.1
    • ufo-tech/rpc-objects: без змін (^3.4)
    • ufo-tech/rpc-exceptions: без змін (^1.3)

Функціональність яку надає бібліотека

Після встановлення ви одразу отримуєте:

  • точку входу вашого Json-RPC API, що може приймати як синхронні так і асинхронні запити
  • автоматичну генерацію документації можливостей вашого API у форматі json (див. Налаштування бандлу)
  • можливість підписатися на події життєвого циклу RPC сервера (див.Події життєвого циклу)
  • batch-запити з можливістю використання елементів відповіді одного запиту в тілі іншого запиту однієї серії (див. Batch запити)
  • запити з відповіддю на webhook або web-socket
  • кешування відповідей методів, що мають відносно статичні результати (див. #[RPC\Cache])

Розділи документації

Детальну інформацію про кожен аспект використання і налаштування бібліотеки ви можете знайти у відповідних розділах