首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >应用层。api模型和内部模型之间的映射

应用层。api模型和内部模型之间的映射
EN

Stack Overflow用户
提问于 2019-03-08 06:37:47
回答 1查看 115关注 0票数 2

我遇到过这样的情况

我有控制器代码

代码语言:javascript
运行
AI代码解释
复制
@RestController
public class MyController implements SomeApi {

@Autowired
private final MyService myService ;

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

服务代码如下:

代码语言:javascript
运行
AI代码解释
复制
@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;
        }
}

我可以看到这里有几个层- rest层,业务层,持久层(假设我有几个数据源- DB和elastic,每个都有一些存储库bean)。

正如我们可以看到的,业务层(服务)对实体的感知,我认为这并不是很好。

因此,问题是,对于这种情况,最佳实践是什么?映射应该发生在持久层上吗?

或者,创建一些额外的层适配器来负责rest模型到内部数据模型之间的映射,并将其注入到服务bean中,这是不是一个好主意?

欣赏任何好的成熟的例子。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-10 06:23:55

我认为,它可以在控制器级别上完成,就像在示例here中一样。如果我错了,请纠正我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55057947

复制
相关文章
实体与模型之间的映射,就用Mapstruct
mapstruct这个插件就是用来处理domin实体类与model类的属性映射,定义mapper接口,mapstruct就会自动的帮我们实现这个映射接口,避免了麻烦复杂的映射实现。
JAVA葵花宝典
2019/05/24
1.4K0
.NET映射设计(Model与UIControl之间的模型关系)
我们的项目一般都是采用分层架构,有的三层有的可能五层或者其他的方式组织系统的架构,但是始终要将系统的架构按照模式设计,我们才能重用和接受维护。
王清培
2022/03/14
6370
.NET映射设计(Model与UIControl之间的模型关系)
业务模型、系统模型、软件模型:三者间的映射解析
业务模型描述了组织的业务流程和功能需求。它关注的是“为什么”和“做什么”,不涉及具体的实现方式。
运维开发王义杰
2023/08/10
9590
业务模型、系统模型、软件模型:三者间的映射解析
业务模型、系统模型、软件模型:三者之间的边界
在复杂的软件开发过程中,业务模型、系统模型和软件模型是三个关键层次。它们不仅定义了不同的抽象层次,还代表了开发过程中的不同阶段。本文旨在探讨这三个模型之间的边界,并强调它们之间的相互关系和协作。
运维开发王义杰
2023/08/10
5570
业务模型、系统模型、软件模型:三者之间的边界
[答疑]部门,岗位之间关系的模型
项目完成之后,项目主管需要按照员工的职级,参与项目的时长,担任的职责进行打分,财务需要职级,时长,职责等信息制定计算提成算法,最后和打分结果综合计算出项目奖金。
用户6288414
2022/04/11
7130
[答疑]部门,岗位之间关系的模型
深度解析Java多线程的内存模型内部java内存模型硬件层面的内存模型Java内存模型和硬件内存模型的联系小结
Java内存模型很好的说明了JVM是如何在内存里工作的,JVM可以理解为java执行的一个操作系统,作为一个操作系统就有内存模型,这就是我们常说的JAVA内存模型。
desperate633
2018/08/22
5400
深度解析Java多线程的内存模型内部java内存模型硬件层面的内存模型Java内存模型和硬件内存模型的联系小结
REST API和SOAP API之间的区别
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。
全栈程序员站长
2022/09/14
1.4K0
REST API和SOAP API之间的区别
The Representational State Transfer (REST)架构风格不是可以购买的技术,也不是可以添加到软件开发项目中的库。REST是一种世界观,将信息提升为我们构建的体系结构的第一流元素。
程序你好
2018/08/09
2K0
REST API和SOAP API之间的区别
EntityFramework Core 自动绑定模型映射
笔者最近在和同事共同开发项目时,需要从他们提供的包含数据库实体类型的类库中读取实体信息绑定到自己的项目中(但是都在同一个解决方案里),所以很直接的一种方式就是把项目中所有的实体都以 public DbSet<Blog> Blogs { get; set; } 的形式加入到自己的 Context 中,但是这显然十分麻烦,而且如果又新增或减少了实体,每次又得在Context中做修改。 先放上示例的两个实体,假设它们都处于Synyi.EntityDemo这个项目类库中。其实IEntity是一个空接口,起指示作用。
潘成涛
2018/01/18
1.1K0
ORM模型的使用,创建ORM模型,ORM模型映射到数据库,ORM模型增删改查
ORM模型通常放在app的models.py文件中,所以创建该文件,然后需要在settings.py中INSTALLED_APPS添加该app的名称。举个栗子。
SingYi
2022/07/14
7160
ORM模型的使用,创建ORM模型,ORM模型映射到数据库,ORM模型增删改查
EntityFramework Core 自动绑定模型映射
笔者最近在和同事共同开发项目时,需要从他们提供的包含数据库实体类型的类库中读取实体信息绑定到自己的项目中(但是都在同一个解决方案里),所以很直接的一种方式就是把项目中所有的实体都以 public DbSet<Blog> Blogs { get; set; } 的形式加入到自己的 Context 中,但是这显然十分麻烦,而且如果又新增或减少了实体,每次又得在Context中做修改。 先放上示例的两个实体,假设它们都处于Synyi.EntityDemo这个项目类库中。其实IEntity是一个空接口,起指示作用。
潘成涛
2018/07/09
1.2K0
使用 AutoMapper 自动映射模型时,处理不同模型属性缺失的问题
使用 AutoMapper 可以很方便地在不同的模型之间进行转换而减少编写太多的转换代码。不过,如果各个模型之间存在一些差异的话(比如多出或缺少一些属性),简单的配置便不太行。本文帮助你解决这个问题。
walterlv
2023/10/23
6940
【计算机网络】应用层 : 网络应用模型 ( 应用层概述 | 客户端 / 服务器 模型 | P2P 模型 )
常见的 C/S 应用 : WEB 网站 , FTP 文件传输 , TELNET 远程登录 SMTP 电子邮件 ;
韩曙亮
2023/03/28
4670
云安全:内部共享责任模型
在最近发生的主要云安全事件中,Capital One公司的数据泄露事件影响了美国的1亿人和加拿大的600万人。其实并不只有Capital One公司遭遇网络攻击,黑客Paige A. Thompson与此同时窃取了其他三十多家公司、教育机构和其他实体的数TB的数据。
静一
2019/09/19
1.2K0
云安全:内部共享责任模型
星火大模型API
在当今的数字化时代,人工智能(AI)已经成为了我们生活中不可或缺的一部分。科大讯飞作为中国领先的人工智能公司,提供了一系列的AI服务,其中包括讯飞星火。而Vercel则是一个用于构建、部署和管理网站和应用的平台。
闲花手札
2023/10/22
5730
星火大模型API
Flink 内部原理之编程模型
(1) 最低级别的抽象只是提供有状态的数据流。通过Process Function集成到DataStream API中。它允许用户不受限制的处理来自一个或多个数据流的事件,并可以使用一致的容错状态(consistent fault tolerant state)。另外,用户可以注册事件时间和处理时间的回调函数,允许程序实现复杂的计算。
smartsi
2019/08/07
1.6K0
内部分享-聊聊常用的线程模型
基本概念 === === 单线程模型 === === 多线程模型 === === === Reactor线程模型 === ===
Throwable
2020/06/23
4800
内部分享-聊聊常用的线程模型
Actor模型和CSP模型的区别
  Akka/Erlang的actor模型与Go语言的协程Goroutine与通道Channel代表的CSP(Communicating Sequential Processes)模型有什么区别呢?
物流IT圈
2019/07/16
1.7K0
Actor模型和CSP模型的区别
判别模型 和 生成模型
【摘要】 - 生成模型:无穷样本==》概率密度模型 = 产生模型==》预测 - 判别模型:有限样本==》判别函数 = 预测模型==》预测 【简介】 简单的说,假设o是观察值,q是模型。 如果对P(o|q)建模,就是Generative模型。其基本思想是首先建立样本的概率密度模型,再利用模型进行推理预测。要求已知样本无穷或尽可能的大限制。 这种方法一般建立在统计力学和bayes理论的基础之上。 如果对条件概率(后验概率) P(q|o)建模,就是Discrminative模型。基本思想是有限
机器学习AI算法工程
2018/03/12
1.1K0
生成模型和判别模型
生成模型(Generaive Model)一般以概率的方式描述了数据的产生方式,通过对模型采样就可以产生数据。 一个简单例子:给定平面上一系列点,我可以认为这些点是根据一个二维高斯分布产生的,这就是一个生成模型,它可以产生数据。我可以用最大似然方法,根据已有的样本估计出模型的参数,再对这个模型进行采样,就可以得到更多的样本,这些样本和之前的样本在空间分布上可能差不多。
故事尾音
2019/12/18
1.1K0
生成模型和判别模型

相似问题

持久性模型和域模型之间的映射

30

AutoMapper:域模型和视图模型之间的双向、深度映射

22

模型之间的Linq映射

19

api和模型swagger之间的区别

10

模型与表之间的映射

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文