尋找做網(wǎng)站的廣告網(wǎng)站策劃方案
一、緒論
? ?JAVA接口返回信息ServerHttpResponse response
等登錄接口token過(guò)期時(shí)需要給前端返回相關(guān)狀態(tài)碼和狀態(tài)信息
二、Mono<Void>向前端返回沒(méi)有登陸或登錄超時(shí) 暫無(wú)權(quán)限訪(fǎng)問(wèn)信息組裝
返回Mono對(duì)象
public abstract class Mono<T> implements CorePublisher<T>
/*** 無(wú)權(quán)限* * @param response* @return*/private Mono<Void> noLogin(ServerHttpResponse response) {log.info("沒(méi)有登陸或登錄超時(shí) 暫無(wú)權(quán)限訪(fǎng)問(wèn)===========");String responseDataStr = JSON.toJSON(ResponseData.error(HttpStatus.UNAUTHORIZED.value(), "The Token has expired")).toString();byte[] bytes = responseDataStr.getBytes(StandardCharsets.UTF_8);DataBuffer buffer = response.bufferFactory().wrap(bytes);response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.writeWith(Mono.just(buffer));}
信息組裝。
1、返回ResponseData對(duì)象,輸出狀態(tài)碼和狀態(tài)信息:The Token has expired
ResponseData.error(HttpStatus.UNAUTHORIZED.value(), "The Token has expired")
轉(zhuǎn)換成json信息
byte[] bytes = responseDataStr.getBytes(StandardCharsets.UTF_8);
轉(zhuǎn)換成字節(jié)流
輸出:
response.writeWith(Mono.just(buffer));
公共返回體封裝:ResponseData
public class ResponseData<T> implements Serializable {/*** */private static final long serialVersionUID = 7098362967623367826L;/*** 響應(yīng)狀態(tài)碼*/private Integer code;/*** 響應(yīng)信息*/private String message;/*** 響應(yīng)對(duì)象*/private T data;/** 是否加密返回參數(shù)*/private boolean encrypt;public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getData() {return data;}public void setData(T data) {this.data = data;}public static <T> ResponseData<T> success() {return success(ResponseCode.SUCCESS);}public static <T> ResponseData<T> success(ResponseCode code) {return success(code, null);}public static <T> ResponseData<T> success(T object) {return success(ResponseCode.SUCCESS, object);}public static <T> ResponseData<T> success(ResponseCode code, T object) {return success(code.getCode(), code.getMessage(), object);}public static <T> ResponseData<T> success(Integer code, String message, T data) {ResponseData<T> response = new ResponseData<>();response.setCode(code);response.setMessage(message);response.setData(data);return response;}public static <T> ResponseData<T> error() {return error(ResponseCode.FAILED);}public static <T> ResponseData<T> error(ResponseCode code) {return error(code, null);}public static <T> ResponseData<T> error(String message) {return error(ResponseCode.FAILED.getCode(), message, null);}public static <T> ResponseData<T> error(Integer code, String message) {return error(code, message, null);}public static <T> ResponseData<T> error(ResponseCode code, T data) {return error(code.getCode(), code.getMessage(), data);}public static <T> ResponseData<T> error(Integer code, String message, T data) {ResponseData<T> response = new ResponseData<>();response.setCode(code);response.setMessage(message);response.setData(data);return response;}public boolean isEncrypt() {return encrypt;}public void setEncrypt(boolean encrypt) {this.encrypt = encrypt;}
}