溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java接口統(tǒng)一樣式返回模板的實現(xiàn)

發(fā)布時間:2020-09-24 03:48:02 來源:腳本之家 閱讀:185 作者:Axe_Lai 欄目:編程語言

前言

一開始,我們在寫項目的時候,前端要什么數(shù)據(jù),我們就返回什么數(shù)據(jù),每個接口也都寫得不一樣很亂;隨著前后端的分離;對于代碼規(guī)范的要求也越來越嚴謹;接口都是統(tǒng)一樣式的返回模板;

下面,接受一種我之前用過的返回模板;

一、首先來看下我們的Controller接口

  /**
   * 獲取用戶信息
   * @param token 微信登入者token
   * @param id 商品id
   * @return 商品詳細信息
   */
  @PostMapping(value = "getUserInfo")
  @ResponseBody
  public ResultResponse getUserInfo(
      @RequestParam(value = "token") String token){
    ResultResponse result = new ResultResponse();
    //這里獲取用戶信息的類就不貼出來了
    User user = userService.getUserByToken(token);
    result.setData(user );
    return result.setStatus(ResponseCode.SUCCESS);
  }

我們可以看出,接口返回的是ResultResponse類;下面來剖析這個類;

二、統(tǒng)一樣式返回模板ResultResponse剖析

2.1ResultResponse類:

package com.himo.common;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

/**
 * @Author: laixiansong
 * @Description: http請求
 * @Vesion: 1.0.0
 * @Date: 2017/10/17
 */
@Data
public class ResultResponse<T> {

  /** 錯誤碼 */
  private Integer code;
  /** 錯誤信息 */
  private String msg;

  @JsonInclude(JsonInclude.Include.NON_NULL)
  private T data;

  public void setData(T data) {
    this.data = data;
  }
  public ResultResponse setStatus(ResponseCode responseCode){
    this.code = responseCode.getCode();
    this.msg = responseCode.getDesc();
    return this;
  }
  public String getMsg() {
    return msg;
  }
}

ResultResponse類包含了錯誤碼、錯誤信息、返回的對象json;

2.2枚舉類

從ResultResponse類中我們可以看出,錯誤碼和錯誤信息是一一對應的,我們用一個枚舉類ResponseCode來封裝;

ResponseCode:

package com.himo.common;
/**
 * @Author: laixiansong
 * @Description:
 * @Vesion: 1.0.0
 * @Date: 2017/10/17
 */
public enum ResponseCode {
  SUCCESS(0,"SUCCESS"),
  ERROR(1,"ERROR"),
  REQUEST_PARAMS_ERROR(1003,"請求參數(shù)錯誤"),
  NOT_WX_LOGIN(1004,"非微信端登錄"),
  WX_LOGIN_PARAMS_ERROR(1005,"微信登錄code錯誤"),
  NO_LOGIN(1006,"登錄狀態(tài)失效"),
   ;
  private final int code;
  private final String desc;
  ResponseCode(int code, String desc){
    this.code = code;
    this.desc = desc;
  }
  public int getCode() {
    return code;
  }
  public String getDesc() {
    return desc;
  }
}

我們可以在枚舉類中加入我們想要增加的錯誤信息和錯誤碼;

這樣就是一個完成的Java接口返回的模板了;

總結(jié)

技術(shù)在不斷更新?lián)Q代,但是它的基礎沒有變,要想更好的維護項目,使得代碼更加的美觀和正規(guī),所有接口統(tǒng)一返回統(tǒng)一類是非常有必要的;

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI