后羿框架-公共子框架-报文封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后羿框架-公共子框架-报文封装相关的知识,希望对你有一定的参考价值。

参考技术A 框架基于spring-web实现的REST服务接口,接口调用时可基于HTTP的url传递调用参数,也可以通过post方法在HTTP的body中传递参数。

如果基于url传递参数,可以使用spirng-web的@PathVariable注解获取参数,如下所示:

如果基于body传递参数,在后端可以基于@RequestParam来获取参数,如下所示:

如果body传递的参数为一个对象的Json数据结构,则可以使用@RequestBody直接转换为一个对象,如下所示:

以上基于不同的参数获取方式,提供了太多的注解方式,来基于不同的场景获取数据做数据类型转换。

扩展一个注解,如:@HouyiRequest,该注解使用在方法参数上,注解有两个属性:

一个name属性可以指定参数名称,name属性默认值为参数名称。
一个type属性可以指定参数对应的数据类型,type属性默认值为参数类型。
则以上的请求就可以改为:

在common-core中扩展一个注解@HouyiRequest
实现在common-web中实现Spring-web包中的HandlerMethodArgumentResolver接口

扩展Spring-web的WebMvcConfigurationSupport类,添加springmvc对扩展注解的支持,如下是基于SpringBoot的示例。

框架可用于单体应用或微服务网关开发时,前端应用调用后端接口需要获取一个统一的返回报文,方便前端作结果展示及展示逻辑处理。

比如:

一个REST-API的接口查询指定用户信息。

如果正常访问会返回一个用户的Json结构的数据信息,如:

但如果该用户不存在,可以返回一个空的Json结构,如:

或直接返回一条业务异常的消息提示:

这些返回结果都不方便前端封装展示逻辑。

通过统一返回一个接口报文,如下所示:

报文中有统一的状态码 "resp_code",前端可以根据状态码判断接口调用是成功还是失败,比如resp_code值不为“200”则为异常,前端只要判断状态码不为“200”,则可以将resp_msg属性中的异常信息直接做异常提醒展示。

如果返回的状态码为“200”,则可以将datas中取出的约定好的数据格式进行解析并做相关的展示逻辑处理。

在common-core包中定义扩展注解@HouyiResponse,该注解可以使用在方法的返回类型上。
在common-web包中实现spring-web包中接口HandlerMethodReturnValueHandler

扩展Spring-web的WebMvcConfigurerAdapter类,添加springmvc对扩展注解的支持,如下是基于SpringBoot的示例。

廊坊市政府应急系统平台框架

 

廊坊市政府应急系统平台框架

1.公共基础表设计,公共基础类的jar封装,主要包括密级,性别,政治面貌,民族,级别,行政区域,用户表,组织机构表。
2.装配复用组件component—extension组件的封装
3.项目公共POM组件(项目所有组件构建环境) parent—runenv的封装
4.web组件包括模块展示层和控制层(前台页面资源和action)封装
5.service组件包括模块业务逻辑层和持久层(service和dao文件)封装
6.前台freemaker应用和echart统计图应用包括
前端的各种表单控件封装,还有就是公共样式和js封装
7.cfw宏封装和echarts封装
8.hibernate的hql和原生态sql的封装,封装成Cnds和CB语句拼接查询
9.用户登录和session使用,cookie工具类,action工具类封装,json工具类封装
10.gis的web和seevice封装
11.导入和导出Excel表格,上传下载文件或图片的封装
12.前后台交互逻辑跳转封装,多数据库源的支持封装
13.短信通知,邮件收发,定时任务封装 
14.打印功能和ftl导出word

 

SVN用法:

Window References Team SVN 进行设置即可
另外,有星号,说明你还有新的文件,未带版本,可以用Navigate视图查看那些文件,
如果想让sv忽略这些未带版本文件可以设置忽略属性(Window References Team IgnroeResouces进行正则设置)

以上是关于后羿框架-公共子框架-报文封装的主要内容,如果未能解决你的问题,请参考以下文章

廊坊市政府应急系统平台框架

API接口自动化测试框架搭建-公共方法-封装读取excel用例数据方法read_excel.py

API接口自动化测试框架搭建-公共方法-封装写入excel用例数据方法write_excel.py

HTTP通信与Web框架

django框架-request对象

python自动化web自动化:4.测试框架讲解