1. 程式人生 > 其它 >Springboot聯結萬物學習筆記--Springboot微服務基礎搭建篇(五)--SpringBoot統一介面返回的標準格式

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);
    }
}

呼叫:

返回: