Http контроллер параметр объекта определен как DTO или другой? - PullRequest
0 голосов
/ 01 ноября 2018

RPC на уровне интернет-транспорта, использование dto является разумным. Http контроллер? Если все контроллеры используются интерфейсом, параметр определяется как VO?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Полагаю, вы спрашиваете, может ли аргумент метода контроллера rest быть DTO.

Ну, это будет зависеть от используемой вами платформы. Параметры http - это строки.

Если в фреймворке есть служебный механизм (возможно, аннотация), который позволяет вам отображать полученные http-параметры в DTO, который вы предоставляете в качестве аргумента метода контроллера покоя, в arg, являющемся DTO, нет никаких проблем.

Если инфраструктура не имеет такой утилиты (она просто отображает каждый http-параметр в строковый аргумент метода rest controller), то вы должны вручную построить DTO в методе rest controller.

Я не знаю, есть ли в Spring такая служебная аннотация, похожая на @PathVariable, но для сбора нескольких параметров запроса в объект DTO.

UPDATE:

Аннотация Spring @RequestBody десериализует JSON в аргумент объекта java метода rest контроллера. Итак, аргумент, помеченный @RequestBody, является DTO.

DDD ничего не говорит о том, какой тип должен быть параметром API остальных. Это могут быть DTO или Strings, это не имеет значения. Если бы они были строками, вам пришлось бы создавать DTO самостоятельно. Используя @RequestBody, Spring Framework сделает это за вас.

0 голосов
/ 01 ноября 2018

В Java объект, который переносится между процессами, именуется в соответствии с нотацией верблюда и имеет суффикс DTO. например ServiceMessageDTO

DTO обозначает объект передачи данных.

Это относится также к параметрам тела запроса из остальных веб-методов.

...