Heim  >  Artikel  >  Java  >  Umgang mit dem einheitlichen SpringBoot-Rückgabeformat

Umgang mit dem einheitlichen SpringBoot-Rückgabeformat

王林
王林nach vorne
2023-05-10 21:04:13989Durchsuche

Hintergrund

Ich glaube, dass die meisten Back-End-Entwickler in der täglichen Entwicklung eine Schnittstelle zum Front-End benötigen. Wenn Sie das Front-End und das Back-End selbst erstellen, können Sie natürlich spielen, wie Sie möchten, aber wir müssen noch bestimmte Standards erreichen. In Projekten mit Front-End- und Back-End-Trennung muss das vom Back-End zurückgegebene Format benutzerfreundlich und fest sein und darf nicht häufig geändert werden, da es sonst eine große Arbeitsbelastung für die Front-End-Entwickler mit sich bringt. Gemeinsames Rückgabeformat von SpringBoot Controller

Fehlerrückgabe

@PostMapping("/test")
public String test(){
    return "Hello World";
}

Ergebnis des Postboten-Anrufs:

Umgang mit dem einheitlichen SpringBoot-Rückgabeformat

Definieren Sie das Rückgabeobjekt

Ich definiere zwei ActionResult-Objekte, um den Rückgabewert zu kapseln, der entsprechend der tatsächlichen Situation Ihres Unternehmens geändert werden kann:

    @PostMapping("/getUser")
    public ActionResult getUser(){
        User user = new User();
        user.setId(UUID.randomUUID().toString());
        user.setName("MrDong");
        user.setAge(20);
        return ActionResult.defaultOk(user);
    }

Statusaufzählung definieren

   @PostMapping("/error")
    public ActionResult error(){
        return ActionResult.defaultFail(1000,"服务器异常,请联系管理员");
    }
Unify Behandlung von Rückgabewerten und Ausnahmen

Implementierungsprinzip: Es ist erforderlich, die von SpringBoot bereitgestellte ResponseBodyAdvice-Schnittstelle zu implementieren, um die Kapselung einheitlicher Rückgabewerte und Ausnahmebehandlung abzuschließen. Nach der Implementierung dieser Schnittstelle müssen Sie das Objekt nur direkt zurückgeben, wenn der Controller zurückkehrt. Einige, die keinen Rückgabewert benötigen, können direkt void zurückgeben.

package com.wxd.entity;
import com.wxd.enums.ResultCodeEnum;
import lombok.Data;

/**
 * @ClassName ActionResult
 * @Description 统一返回值封装
 * @Author Mr Dong
 * @Date 2022/7/26 14:51
 */
@Data
public class ActionResult {
    private Integer code;
    private String msg;
    private Integer count;
    private Object data;
    public static ActionResult defaultOk(Integer code, String msg, Integer count, Object data) {
        return new ActionResult(code, msg, count, data);
    }

    public static ActionResult defaultOk(Integer count, Object data) {
        return new ActionResult(ResultCodeEnum.RC200, count, data);
    }

    public static ActionResult defaultOk(Object data) {
        return new ActionResult(ResultCodeEnum.RC200, null, data);
    }

    public static ActionResult defaultOk() {
        return new ActionResult(ResultCodeEnum.RC200);
    }
    public static ActionResult defaultFail() {
        return new ActionResult(ResultCodeEnum.RC999);
    }
    public static ActionResult defaultFail(Integer code, String msg) {
        return new ActionResult(code, msg);
    }
    public static ActionResult defaultFail(ResultCodeEnum resultCodeEnum) {
        return new ActionResult(resultCodeEnum);
    }
    public ActionResult(Integer code, String msg, Integer count, Object data) {
        this.code = code;
        this.msg = msg;
        this.count = count;
        this.data = data;
    }
    public ActionResult(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public ActionResult(ResultCodeEnum resultCodeEnum) {
        this.code = resultCodeEnum.getCode();
        this.msg = resultCodeEnum.getMessage();
    }
    public ActionResult(ResultCodeEnum resultCodeEnum, Integer count, Object data) {
        this.code = resultCodeEnum.getCode();
        this.msg = resultCodeEnum.getMessage();
        this.count = count;
        this.data = data;
    }
}
Umgang mit dem einheitlichen SpringBoot-Rückgabeformatvoid hat keinen Rückgabewert

hat einen Rückgabewert

Umgang mit dem einheitlichen SpringBoot-Rückgabeformat

Das obige ist der detaillierte Inhalt vonUmgang mit dem einheitlichen SpringBoot-Rückgabeformat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen