REST API для Android-приложения
Я создаю REST backend для моего Android-приложения (sth похож на интернет-магазин). Я решил использовать Spring-Boot, потому что этот фреймворк прост в настройке и развертывании. На данный момент у меня есть сущности и репозитории (CrudRepository). Я знаю, что мне понадобятся также контроллеры или что-то подобное. Я нашел несколько примеров на Github (как это - https://github.com/steve-perkins/fitnessjiffy-spring ), но в этих примерах часто используются также DTOs и сервисы.
Что ты делаешь? подумайте, нужны ли эти компоненты (DTOs и сервисы)? Если да, то почему? Если DTOs-это хороший способ, может быть, вы знаете хороший трюк для преобразования сущности в DTO, чтобы избежать дублирования кода? В чем разница между контроллерами и сервисами весной?
Может быть, вы знаете какие-нибудь другие фреймворки, в которых я мог бы сделать это хорошо и быстрее? А как насчет Джерси?
Буду признателен за любые примеры / ссылки.
1 ответ:
Я использовал Джерси только для веб-сервисов, но принципы должны оставаться прежними. Я не считаю, что это техническое требование, чтобы иметь либо DTOs или услуги, как определено в образце Github, но это хорошая практика.
В коде REST Джерси, который я разработал, мои контроллеры и службы были того же класса. У меня были ДТО, потому что не все ДТО были точной копией моих сущностей. Для отображения сущностей (извлеченных DAOs из базы данных) в DTOs я использовал Dozer. В в некоторых случаях, когда DTOs объединял бы несколько атрибутов из нескольких сущностей, я бы кодировал отображение.
Разницу между контроллерами и службами смотрите в этомпосте .
Вы спросили: "может быть, вы знаете хороший трюк, чтобы преобразовать DAO в DTO, чтобы избежать дублирования кода". Я предполагаю, что Вы имеете в виду сущность для DTO.