JsonRpcBundle
Пакет для легкого створення 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.1ufo-tech/rpc-objects: без змін (^3.4)ufo-tech/rpc-exceptions: без змін (^1.3)
- додано
Функціональність яку надає бібліотека
Після встановлення ви одразу отримуєте:
- точку входу вашого Json-RPC API, що може приймати як синхронні так і асинхронні запити
- автоматичну генерацію документації можливостей вашого API у форматі json (див. Налаштування бандлу)
- можливість підписатися на події життєвого циклу RPC сервера (див.Події життєвого циклу)
- batch-запити з можливістю використання елементів відповіді одного запиту в тілі іншого запиту однієї серії (див. Batch запити)
- запити з відповіддю на webhook або web-socket
- кешування відповідей методів, що мають відносно статичні результати (див. #[RPC\Cache])
Розділи документації
Детальну інформацію про кожен аспект використання і налаштування бібліотеки ви можете знайти у відповідних розділах