web請求響應規範化處理

/**
* @author StormMa
* @Date 2017-03-21
*/

生命不息,奮鬥不止!


之所以講究規範會請求處理,就是將每次的後端處理結果封裝成固定的格式去回送到前端,之於規範化的好處,就不甚枚舉了。我們先看看代碼實現吧!

定義結果集的規範
/**
 * <p>Created on 2017/3/15.</p>
 *
 * @author StormMa
 *
 * @Description: 對請求結果進行封裝
 */
public class RequestResult<T> {

    /**
     * error code :錯誤是1、成功是0
     */
    private Integer code;

    /**
     * 要返回的數據
     */
    private T data;

    /**
     * 本次請求的說明信息
     */
    private String msg;

    public Integer getCode() {
        return code;
    }

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

    public T getData() {
        return data;
    }

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

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "RequestResult{" +
                "code=" + code +
                ", data=" + data +
                ", msg='" + msg + '\'' +
                '}';
    }
}
結果集封裝
/**
 * <p>Created on 2017/3/15.</p>
 *
 * @author StormMa
 *
 * @Description: 封裝請求結果的工具類
 */
public class ResultUtil {

    /**
     * 成功請求的結果封裝
     * @param t
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> success(T t) {
        RequestResult<T> result = new RequestResult<>();
        result.setCode(0);
        result.setMsg("success");
        result.setData(t);
        return result;
    }

    /**
     * 成功請求的結果封裝
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> success() {
        return success(null);
    }

    /**
     * 失敗請求的結果封裝
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> fail() {
        RequestResult<T> result = new RequestResult<>();
        result.setCode(1);
        result.setData(null);
        result.setMsg("fail");
        return result;
    }

    /**
     * 失敗請求的結果封裝
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> RequestResult<T> fail(String msg) {
        RequestResult<T> result = new RequestResult<>();
        result.setCode(1);
        result.setData(null);
        result.setMsg(msg);
        return result;
    }
}
舉例
/**
 * <p>Created on 2017/3/21.</p>
 * 
 * @author StormMa
 * 
 * @Description: 使用規範化結果響應
 */
@RestController
@RequestMapping(value = "/test")
public class TestController {

    @Autowired
    private ITestService testService;

    @RequestMapping(value = "/{testId}")
    public RequestResult<Test> getTest(@PathVariable int testId) {
        Test test = testService.getTestById(testId);

        if (test != null) {
            return ResultUtil.success(test);
        }
        return ResultUtil.fail("不存在數據!");
    }
}
結束語

看到規範化請求響應的好處了吧,Controller裏面的代碼更加簡潔明瞭!

發佈了108 篇原創文章 · 獲贊 250 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章