Springboot联结万物学习笔记--Springboot微服务基础搭建篇(五)--SpringBoot统一接口返回的标准格式

博客说明:撰写博客目的是在记录自己所学知识、在工作中使用技术遇到的技术问题、一些技术感悟,因此避免不了涉及到和其他文章有相似之处。本文从作者自己的实践中指出相关踩坑问题,着重指出学习过程中遇到的相关问题。如果存在相关侵权问题请联系博主删除,同时有技术上的见解可以在评论去里发出,会不定期回复,谢谢。

gitee地址:https://gitee.com/woniurunfast/springbootwitheverything

01背景

在企业SpringBoot的日常开发中,一般都是需要统一返回接口类型以及异常类型,方便各服务之间的识别

02目标

1、定义自动返回类Result.java工具公共类已经经常会出现的返回提示

03封装统一返回的Result类

package com.hkx.demo.common;

import lombok.Data;

@Data
public class Result<T> {

    // 返回的编码
    private Integer code;
    // 返回的数据,数据类型N中,
    private T data;
    // 返回的信息
    private String message;

    private Result() {

    }

    public static <T> Result success(T data, String message) {
        Result r = new Result();
        r.setCode(ResponseEnum.SUCCESS.getCode());
        r.setData(data);
        r.setMessage(message == null ? ResponseEnum.SUCCESS.getMessage() : message);
        return r;
    }

    public static <T> Result success(T data) {
        return success(data, null);
    }


    public static Result fail(Integer code, String message) {
        Result r = new Result();
        r.setCode(code);
        r.setData(null);
        r.setMessage(message);
        return r;
    }

    public static Result fail(ResponseEnum responseEnum) {
        Result r = new Result();
        r.setCode(responseEnum.getCode());
        r.setData(null);
        r.setMessage(responseEnum.getMessage());
        return r;
    }
}

04封装统一枚举引用提示语

package com.hkx.demo.common;

/**
 * @description: 统一返回的常量类
 * 对内修改开放,对外修改关闭---枚举
 */
public enum ResponseEnum {

    SUCCESS(200,"成功!"),

    WONIU_REG_USER_PASSWORD_CODE(401,"用户名和密码错误"),
    WONIU_REG_USER_PASSWORD_CONFIRM(402,"密码和确认密码不一致");

    private Integer code;
    private String message;

    ResponseEnum(Integer code, String mesage){
        this.code = code;
        this.message =mesage;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}

05测试返回结果

创建控制层:

package com.hkx.demo.controller;


import com.hkx.demo.common.Result;
import com.hkx.demo.entity.WoNiu;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/select")
@Slf4j
public class ResultController {

    @GetMapping("/getWoniu")
    public Result getUser2(Integer id) {

        WoNiu user = new WoNiu();
        user.setId(1);
        user.setHobby("swim");
        user.setDesc("just for fun");
        user.setType("happy");
        return Result.success(user);
    }
}

调用:
image

返回:
image

posted @ 2021-07-01 23:26  woniurunfast  阅读(177)  评论(0编辑  收藏  举报