企业级项目,后端与前端接口交互标准

规定接口标准

前后端交互,在企业级开发中,需要按照约定,制定统一的接口响应标准。这样在开发中才可以更好地的合作。接口标准是推荐的,也是必须的。

通用标准

  • code 使用字符串类型,规定常用的响应规范:code = "200",表示成功。否则表示响应失败。code= "500",表示系统错误。
  • message 使用字符串类型,规范响应的业务消息。例如常见的异常说明和校验说明等业务信息。
  • data 前后端接口数据交互,统一使用json。data用于后端响应的数据体。

为什么使用JSON

JSON 是存储和交换文本信息的一种语法,它与XML具有相同的特性,是一种数据存储格式,却比 XML 更小、更快、 更易于人编写和阅读、更易于生成和解析。

统一响应实体类

public class CommonResult {
    private String code;
    private String message;
    private T data;

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public CommonResult(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public CommonResult(String code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public static CommonResult success() {
        return new CommonResult(SUCCESS_CODE, SUCCESS_MESSAGE);
    }

    public static  CommonResult success(T data) {
        return new CommonResult(SUCCESS_CODE, SUCCESS_MESSAGE, data);
    }

    public static CommonResult failed() {
        return new CommonResult(FAILED_CODE, FAILED_MESSAGE);
    }

    public  CommonResult data(T data) {
        return new CommonResult(SUCCESS_CODE, SUCCESS_MESSAGE, data);
    }

}
  • 成功响应,使用success方法
  • 失败响应,使用failed方法
  • data设计为泛型,接收数据对象

示例

  • controller接口:
@GetMapping("/hello/result")
@ApiOperation("get请求参数测试")
public CommonResult helloResult(@RequestParam("name") String name) {
    String hello = "Hello," + name;
    return CommonResult.success(hello);
}
  • 传入参数programmer,响应:
{
  "code": "200",
  "message": "success",
  "data": "Hello,programmer"
}

源代码

  • github地址
  • 后续会对springboot相关知识进行持续更新和分享。

你可能感兴趣的:(企业级项目,后端与前端接口交互标准)