Слои приложений.Сопоставление моделей API и внутренних моделей - PullRequest
2 голосов
/ 08 марта 2019

У меня такая ситуация

У меня есть код контроллера

@RestController
public class MyController implements SomeApi {

@Autowired
private final MyService myService ;

 public ResponseEntity<AnswerObject> getSomething (RestModelObject obj) {
    myService.getSomething(obj);
}

Ниже Сервисный код:

@Service
public class MyServiceImpl implements MyService {

@Autowired
private final EntityRepository entityRepository;

 public AnswerObject getSomething (RestModelObject obj) {
        Entity entity = entityRepository.getSomething(obj);
        AnswerObject answerObject = map(entity, new AnswerObject());
        return answerObject;
        }
}

У меня здесь несколько слоев, как я вижу -остальной уровень, бизнес-уровень, уровень персистентности (предположим, у меня мало источников данных - БД и эластичные, у каждого есть свой компонент репозитория).

Как мы видим, бизнес-уровень (служба) знает о сущностях, которые не являютсядействительно хорошо, я думаю.

Итак, вопрос в том, каковы наилучшие практики для этой ситуации?Картирование должно происходить на постоянном слое?

Или это хорошая идея - создать какой-то дополнительный адаптер слоя, который будет отвечать за сопоставления между моделями отдыха и внутренними моделями данных, и внедрить его в служебный компонент?

Цените любые хорошие зрелые примеры.

1 Ответ

0 голосов
/ 10 марта 2019

Я думаю, это можно сделать на уровне контроллера, как в примере здесь .Поправь меня, если я ошибаюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...