孙宇的技术专栏 大数据/机器学习

前后端交互规范

2021-03-12

阅读:


#前后端交互规范

前后端接口请求的参数及返回值的定义,要尽量做到通用、有意义。

##命名 项目中参数命名尽量统一。如:

  1. id表示单独的一条数据;
  2. ids表示数据列表;
  3. searchIpt表示查询的关键字;
  4. pageSize表示一页显示多少条
  5. pageNo表示当前页码
  6. startTime表示查询时间范围的,开始时间
  7. 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

  1. 字段类型是 List,返回 new ArrayList()
  2. 类型是 array,返回 []
  3. 类型是 Integer,返回 0
  4. 类型是 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;

上一篇 开发流程

下一篇 如何品红酒

评论

文章