Зачем использовать dto если можно использовать сразу схемы баз данных? Валидацию можно сделать там же, нет никаких проблем с безопасностью. А dto требует больше кода + времени для реализации
Hesas, вы описали частный случай. А если нужно исключить еще somefield2?
опять же, вы там пишете что-то про валидацию. Но ведь валидация не входит в сферу обязанностей DTO. У DTO одна единственная цель - обеспечить обмен данными без необходимости знать детали реализации двух сторон. Вот из этого и исходите.
1 - тебе придётся ручками в каждом сервисе всё это спредить, перебирать поля, где-то нужные отдавать не нужные не отдавать ( когда ты мог просто объект прокинуть в dto и всё )
2 - если в будущем ты решишь добавить юзеру какое-то поле и отдавать его на фронт в каждом из сервисов, тебе придётся идти по всем сервисам и ручками добавить это поле ( когда ты мог бы всего лишь это поле добавить в dto )