Я создал простую JsonRPC server (Netty socketServer) для выполнения определенных задач, общих для нашей команды, но вызывающиеся из разных сетей. Сервер получает JSON-RPC-запрос от (Netty socket client)клиента, ищет метод, и вызывает метод по переданным параметрам. Сам метод-это один возвращает JSON-RPC ответ. Как я могу создать архитектуру, которая позволяет мне по JSON-RPC-запрос найти нужной метод и выполнить его. Нужно создать маппинг.
В мою извращенную голову пришло такое решение. Не сомневаюсь, что есть более "правильные" и красивые способы.
public class Handler {
private Map<String, Controller> controllers;
public Handler() {
controllers = new HashMap<>();
//создаем экземпляры контроллеров на разные методы
controllers.put("hello", input -> { /*some code*/ return "{result...}"; });
controllers.put("ping", input -> "{\"result\": \"pong\"...}");
controllers.put("foo", input -> new FooController().execute(input));
}
public String handle(String input) {
//ищем нужный контроллер
Controller controller = controllers.get(parseMethodName(input));
if (controller != null)
return controller.execute(input);
else
//не нашли - возвращаем 404 или кидаем исключение
return "404";
}
private String parseMethodName(String input) {
//тут можно распарсить название метода
return "methodName";
}
public class FooController implements Controller {
@Override
public String execute(String input) {
return "bar";
}
}
public interface Controller {
String execute(String input);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На странице внезапно появились символы `` c разными вариациями, в зависимости от ОС:
Добрый вечер, Как определить у какого файла приоритет больше чем у твоих стилейТ