Задумал реализовать клиент-серверное приложение на Android с применением архитектуры MVP.Также добавить транспортный слой в приложения, который будет содержать универсальный класс для совершения запросов и выдачи данных в Model. Транспортный класс, по моей задумке, должен реализовывать следующий интерфейс:
interface DataTransfer<T> {
public T getData(String request);
}
то есть, функция этого класса должна на вход получать строку запроса, и отдавать тип данных, преобразованных из JSONа. Тип получаемых данных устанавливается при создании экземпляра класса транспортного уровня. Собственно сабж, верны ли мои представления о транспортном слое и возможна ли реализации такого класса используя RestTemplate (если нет, то на каких библиотеках возможно)
Посмотри в сторону Retrofit2. Использую сам, крайне удобно и очень доволен. Вместе с implementation group: 'com.squareup.retrofit2', name: 'converter-gson', version: '2.4.0' JSON без лишнего кода преобразуется в java объекты.
Документация понятная, есть огромное количество статей и информации как с этим делом работать.
Пример с официального сайта.
public interface GitHubService {
@GET("users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
P.S. В дополнение. Для MVP посмотри в сторону Moxy. Разобраться не сложно, много информации имеется. Если ко всему прикрутить RxJava и RxAndroid и работать с Retrofit количество кода и его сложность уменьшаются в разы, увеличивается концентрация на бизнес логике. Но RxJava далась мне не просто.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей