面向声明式API编程(DAP)

mac2024-04-04  56

面向声明式API编程(DAP)

DAP是Mars-java 最近提出的一个新的开发方式,全称 Declarative API Programming, 提倡后端为一个独立的整体,不应该是为前端服务的,所以当前端需要接口的时候,只需要声明一个API给他,而不需要专门开发一个Controller出来

DAP详细介绍

按照传统的开发方式,如果要开发一个后端接口,需要分为以下三步

创建controller创建service创建dao(甚至会创建存放sql的xml)

但是,我们编写一个接口,重点应该是放在业务逻辑上的,也就是说 我们的关注点应该在第二步,而且Controller跟前端的耦合性也非常的高,所以出现了一个新玩法,这套新玩法就叫声明式API

写业务逻辑声明一个API给前端将API与业务逻辑关联

编写业务逻辑

@MarsBean("testService") public class TestService { 要返回的数据类型 selectListForName(TestDTO testDTO){ // 第一步 根据testDTO里的参数从xx表查询需要的数据 // 第二步 根据查出来的数据,去操作xx2表 // 第三步 对前两步的结果汇总,进行xxx操作 return 数据(直接返回即可,会自动变成json); } }

声明一个API接口

@MarsApi public interface TestApi { Object selectList(TestDTO testDTO); }

将api与业务逻辑关联

@MarsApi public interface TestApi { @MarsReference(beanName = "testService",refName = "selectListForName") Object selectList(TestDTO testDTO); }

前端直接调用这个API就好了

这么做的好处,可以散藕

通过更换MarsReference的配置,可以关联到不同的业务逻辑如果前端不需要这个接口了,直接无脑删就好了,因为这只是一个抽象方法,还原成本几乎为0后端专注业务逻辑就好了,不需要考虑跟前端互动,前端需要的时候开个门就好了

项目目录规范

为了更好地发挥出这个架构的优势,所以制定了一个规范,仅对项目的模块划分做出了规范,其他遵循jvm和自己所在的公司即可

下面用缩进来表示树形结构

项目名称(pom) 项目名称-api(jar) 项目名称-core(jar) 项目名称-start(jar) 项目名称-test(jar) pom.xml api里就放声明的api,其他东西都不要放core作为项目的核心模块,里面放bean,dao,实体类等start是启动模块,里面放配置文件和启动类test用来放单元测试代码和所需的文件括号里的pom,jar等标记是指maven里的配置项,不包含在名称中

Mars-java官网:http://www.mars-framework.com/

最新回复(0)