REST API-是否有DTO?
我想在微服务的背景下再次提出这个问题。这是原始问题的报价。
我目前正在为一个项目创建REST-
API,并且一直在阅读有关最佳实践的文章。许多人似乎反对DTO,只是公开域模型,而其他人似乎认为DTO(或用户模型或任何您想称呼的东西)是不好的做法。我个人认为这篇文章很有道理。但是,我还了解了所有其他映射代码,域模型与其DTO对应对象100%相同的DTO的缺点。
我更倾向于在应用程序的所有层中使用一个对象(换句话说,只公开域对象而不是创建DTO并手动复制每个字段)。我的Rest合同与域对象之间的差异可以使用Jackson注释(如@JsonIgnore
or
@JsonProperty(access = Access.WRITE_ONLY)
或@JsonView
etc)解决。或者,如果有一个或两个字段需要使用杰克逊注释无法完成的转换,那么我将编写自定义逻辑来处理该问题(相信我,我有5年以上从未遇到过这种情况)长期的休息服务)
我想知道是否由于未将域复制到DTO而错过任何真正的不良影响
mybatis.configuration.map-underscore-to-camel-case: true
,spring.jackson.property-naming-strategy: SNAKE_CASE
简短的故事
,至少就我而言,缺点并没有超过优点,因此通过使用新的POJO作为DTO来重复自己毫无意义。更少的代码,更少的错误机会。因此,继续公开Domain对象并且没有单独的“
view”对象。
免责声明 :这可能适用于您的用例,也可能不适用。此观察是根据我的用例(基本上是具有15ish端点的CRUD api)
微丝网应该可重复使用吗?对于可重用,我并不意味着共享特定于域的模型。 我的意思是,为一个应用程序创建的微服务是否应该在另一个应用程序中重用?如果它们可以在应用程序中重用,是否足够? 分离微服务的最佳方法是什么。从我的观点来看,一旦一个微服务调用另一微服务,它就会紧密耦合,这意味着它不容易(无需修改)被提取并放入另一个没有它所引用/来自的相同服务的微服务应用程序中。 在我看来,要使它们脱钩,有以下几
主要内容:微服务架构,微服务架构 vs 单体架构,微服务的特点,微服务框架微服务(MicroServices)最初是由 Martin Fowler 于 2014 年发表的论文 《 MicroServices》 中提出的名词,它一经提出就成为了技术圈的热门话题。 微服务,我们可以从字面上去理解,即“微小的服务”,下面我们从“服务”和“微小”两个方面进行介绍。 1) 所谓“服务”,其实指的是项目中的功能模块,它可以帮助用户解决某一个或一组问题,在开发过程中表现为 IDE(集
假设我们有两个微服务和,如果我们的用户想上传一个头像。请求应该由网关直接路由到还是?从cohesion的角度来看,所有其他信息都是由服务处理的,处理上传请求并将请求转发到更有意义。从性能的角度来看,这完全是对带宽和CPU的浪费。
thinkphp5编写的restful风格的API,集API请求处理,权限认证,自动生成文档等功能
我有几个微服务,每个微服务都有用于CRUD操作的RESTendpoint。我必须创建一个工作流,该工作流将从一个带有一些初始输入的微服务开始,但一个微服务的稍后输出可以用作其他微服务的输入。可以对这些REST API进行一些同步和异步调用。 我已经寻找了一些工作流引擎,但我不认为我可以在不编写任何java代码的情况下创建我的工作流。
基本 Nest 微服务是一种使用与HTTP不同的传输层的应用程序。 安装 首先,我们需要安装所需的软件包: $ npm i --save @nestjs/microservices 概述 通常,Nest支持一系列内置的传输器。它们基于 请求-响应 范式,整个通信逻辑隐藏在抽象层之后。多亏了这一点,您可以轻松地在传输器之间切换,而无需更改任何代码行。我们不支持具有基于日志的持久性的流平台,例如 Ka