#junior #jsonrpc
При реализации нового API многие, не задумываясь, реализуют RESTful API (или json over http). А слышали ли вы про json-rpc протокол? Его спецификация намного проще, чем у REST, но возможностей не меньше: это и батч запросы, и нотификации, и отсутствие привязки к конкретному транспорту. Зато это действительно протокол, который определяет все случаи клиент-серверного взаимодействия: как должны выглядеть ошибки, как должен выглядеть успешный ответ и так далее.
Для PHP не так много библиотек, реализующих json-rpc стандарт:
https://github.com/datto/php-json-rpc – самая популярная, реализующая одновременно и клиент, и сервер. Однако библиотека давно не обновлялась.
https://github.com/operation-hardcode/php-rpc-server – свежая библиотека для php 8.1, реализующая исключительно сервер. Из преимуществ: хорошо типизирована и позволяет легко расширять возможности сервера.
При реализации нового API многие, не задумываясь, реализуют RESTful API (или json over http). А слышали ли вы про json-rpc протокол? Его спецификация намного проще, чем у REST, но возможностей не меньше: это и батч запросы, и нотификации, и отсутствие привязки к конкретному транспорту. Зато это действительно протокол, который определяет все случаи клиент-серверного взаимодействия: как должны выглядеть ошибки, как должен выглядеть успешный ответ и так далее.
Для PHP не так много библиотек, реализующих json-rpc стандарт:
https://github.com/datto/php-json-rpc – самая популярная, реализующая одновременно и клиент, и сервер. Однако библиотека давно не обновлялась.
https://github.com/operation-hardcode/php-rpc-server – свежая библиотека для php 8.1, реализующая исключительно сервер. Из преимуществ: хорошо типизирована и позволяет легко расширять возможности сервера.
GitHub
GitHub - datto/php-json-rpc: Fully unit-tested JSON-RPC 2.0 for PHP
Fully unit-tested JSON-RPC 2.0 for PHP. Contribute to datto/php-json-rpc development by creating an account on GitHub.