#前后端交互规范
前后端接口请求的参数及返回值的定义,要尽量做到通用、有意义。
##命名 项目中参数命名尽量统一。如:
id
表示单独的一条数据;ids
表示数据列表;searchIpt
表示查询的关键字;pageSize
表示一页显示多少条pageNo
表示当前页码startTime
表示查询时间范围的,开始时间endTime
表示查询时间范围的,结束时间
##参数
###查询
项目中已经提供能用的 SearchListDto
,它的属性如下:
/**
* 搜索框输出的值.关键字
*/
@ApiModelProperty(value = "关键字", dataType = "String")
private String searchIpt;
/**
* 当前页码
*/
@ApiModelProperty(value = "当前页码", dataType = "Integer")
private Integer pageNo;
/**
* 一页显示多少条
*/
@ApiModelProperty(value = "一页显示多少条", dataType = "Integer")
private Integer pageSize;
该类已经提供了最基础的关键字、分页查询信息。如果不能满足业务列表查询,可以自定义查询条件类继承该类,以扩充条件。
###详情、删除
项目中提供了 BaseDto
,用来传递一个 id,属性如下:
/**
* 信息ID
*/
@ApiModelProperty(name = "id", value = "信息ID", dataType = "int")
private Integer id;
在查看某信息的详情,或者删除某一个单条信息时,可以直接用该类传递参数。
###批量处理
项目中提供传递多个 id 的参数类,SimpleIdListDto
,它的属性如下:
/**
* 信息ID列表
*/
@ApiModelProperty(name = "ids", value = "信息ID列表", dataType = "int")
private List<Integer> ids;
在需要传递 id 列表时可以直接使用该参数类。比如:批量删除、批量导出、批量转发、批量接收、批量拒收等。
##返回值
###返回内容
各字段要返回有意义的内容,不要返回 NULL
- 字段类型是
List
,返回new ArrayList()
- 类型是
array
,返回[]
- 类型是
Integer
,返回 0 - 类型是
String
,返回空字符串""
其它类型同理。
###列表
涉及到列表信息返回的情况,统一封装成 PageUtils
,该类属性如下:
/**
* 总记录数
*/
private int totalCount;
/**
* 每页记录数
*/
private int pageSize;
/**
* 总页数
*/
private int totalPage;
/**
* 当前页数
*/
private int currPage;
/**
* 列表数据
*/
private List<?> list;
###下拉列表
项目中提供可复用的下拉列表返回值包装类 CombineSelectDto
,它的属性如下:
/**
* 下拉选项列表
*/
private List<SimpleSelectDto> children;
单个选项SimpleSelectDto
,属性如下:
/**
* 下拉选项的广本
*/
private String label;
/**
* 下拉选项的值
*/
private Integer value;
如果下拉选项的值不是整数型,可以使用另一个包装类:CommonSelectDto
。
###图表显示
显示线状、柱状、饼状图的时候,需要返回一系列数据。可以使用包装类:ChartLineDto
,它的属性如下:
/**
* 图例唯一识别码,一个图中显示多条线、多个柱的时候会用此值做识别
*/
private String key;
/**
* 图例标题
*/
private String name;
/**
* 图例中的节点列表
*/
private List<ChartNodeDto> value;
ChartNodeDto
表示的是一个数据节点。属性如下:
/**
* 节点的唯一识别码
*/
private String key;
/**
* 节点名称,如时间统计图中的某个月 2021-01
*/
private String name;
/**
* 节点的值
*/
private Double value;