Ну, это зависит от вашего приложения. Если вам нужно всего лишь сделать несколько вещей, таких как аутентификация, публикация чего-либо, выход из приложения, то нет никаких оснований для выполнения работы и создания такой структуры. Если вы делаете несколько вызовов и особенно хотите сделать один и тот же вызов в разных точках своего кода, вы должны создать обертку API.
Обычный способ - создать один метод generi c, который принимает тип как универсальный. c аргумент, также укажите URL, метод HTTP и другие данные, которые могут вам понадобиться. Метод выполнит вызов с заданными аргументами, автоматически десериализует JSON в объект общего типа c и вернет его вам.
Таким образом, вы можете сделать что-то подобное, только имея написать один метод и определить классы для результатов. Вы можете даже использовать динамику без определения классов, но лично мне не нравится динамика.
ApiClient api = new ApiClient(baseUrl);
User user = api.get<User>("/user", new Query().add("user", "admin"));
EmailList emails = api.get<EmailList>("/user/emails");
Тогда вы все равно можете заполнить ее несколькими методами, если не хотите связываться с конечными точками, такими как
public User getUser(String username){
User user = api.get<User>("/user", new Query().add("user", "admin"));
return user;
}
И используйте его как
MyApiWrapper.getUser("admin");