我应该在哪里存储微服务的外部客户端 DTO?

Where should i store the external client DTOs of my microservice?

我对我正在开发的应用程序的架构有疑问。 它的构建方式如下:

module-app
module-domain
module-rest
module-rest-api
module-rest-client

module-rest-api 中,我存储了我的控制器的 DTO。但是现在我必须添加其他 DTOs 来调用外部客户端。

所以问题是,我必须在哪里实现那些外部 DTO,在 module-rest-api 中或在 external client package 中到 module-app 中?

非常感谢您的帮助,谢谢。

这里没有一个答案,因为将这些 DTO 放在哪里很大程度上取决于个人喜好。

例如,您可以有一个 module-dto。在 module-dto 中,您可以拥有多个包并按用途划分它们,例如

com.mycompany.project.dto.outbound.   //for external requests
com.mycompany.project.dto.inbound.    //for incoming api requests

这样你就可以在任何地方导入你的 dto 模块。我一直坚持我的 DTO 是一个独立的模块,正是因为这个原因,我可以在任何地方使用它。