前后端数据交互规范

1. 统一响应格式(R 类)

(1)核心字段

  • code:业务状态码,200 表示成功,其他数值表示失败(需前后端约定具体含义,如 404 表示资源不存在)。
  • msg:响应消息,用于前端展示(如 “删除成功”“ID 不存在”)。
  • data:业务数据,存储返回的具体信息(如查询到的员工对象、员工列表)。

(2)常用方法

  • R.ok(data):返回成功响应,携带业务数据(如查询列表时返回List<Employee>)。
  • R.ok():返回成功响应,无业务数据(如删除、新增操作)。

2. 数据交互流程

  1. 前端发送请求:根据接口类型选择传递路径参数或请求体(如查询用 GET + 路径参数,新增用 POST+JSON 请求体)。
  2. 后端处理:控制器接收请求,调用服务层处理业务,通过R类封装响应结果。
  3. 前端接收处理:判断code值,成功则解析data展示数据,失败则显示msg提示信息。

3. 数据格式要求

  • 前端传递:新增 / 更新资源时,请求体需与后端实体类(如 Employee)字段名一致,格式为 JSON。
  • 后端返回:响应数据统一为 JSON 格式,通过R类保证结构一致。

R类代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.atguigu.practice.common;

import lombok.Data;

@Data
public class R<T> {
private Integer code;
private String msg;
private T data;

public static<T> R<T> ok(T data){
R<T> r = new R<>();
r.setCode(200);
r.setMsg("ok");
r.setData(data);
return r;
}

public static R ok(){
R r = new R();
r.setCode(200);
r.setMsg("ok");
r.setData(null);
return r;
}

public static R error() {
R r = new R();
r.setCode(500);
r.setMsg("error");
r.setData(null);
return r;
}

public static R error(Integer code, String msg) {
R r = new R();
r.setCode(code);
r.setMsg(msg);
r.setData(null);
return r;
}

public static<T> R<T> error(Integer code, String msg, T data) {
R<T> r = new R<>();
r.setCode(code);
r.setMsg(msg);
r.setData(data);
return r;
}
}