Skip to content

JSON-RPC goboilerplate

Рассмотрим пример внедрения json-rpc в наш бойлерплейт.

Репозиторий ты можешь найти по ссылке.

  1. Конфигурация RPC сервера и клиента. Строки 207-209.

  2. Конфигурация .env файла, добавлены новые ENV variables. Строки 48-55
    Обрати внимание, что для взаимодействия сервиса в docker-compose нужно изменить localhost на имя контейнера.

  3. Сервер json-rpc.

  4. Инициализация сервиса User для сервера. Строки 169-174.

  5. Инициализация сервера json-rpc.
    Обрати внимание, что сервер json-rpc должен стартовать на строках 95-103.
    Но поскольку клиент инициализируется раньше, старт сервера перенесен, так как клиент обращается к самому себе через встроенный сервер. Далее тебе нужно будет разделить сервер и клиент.

  6. Сам UserServiceJSONRPC является оберткой (wrapper) настоящего сервиса UserService находящийся в модуле User. Обрати внимание, что методы UserServiceJSONRPC обязательно должны быть с похожей сигнатурой (suitable methods).

  7. Теперь auth обращается к пользователю через клиент json-rpc, имеющий интерфейс Userer. Для замены Userer в auth-сервис был добавлен временный метод setUserer в интерфейсе и SetUserer в имплементации, который мы не должны использовать в нормальной конфигурации. Используй метод dependency injection в конструкторе.

Примерная схема обращений выглядит так.