You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
Java
73 lines
2.4 KiB
Java
|
4 years ago
|
package com.ruoyi.gateway.utils;
|
||
|
|
|
||
|
|
import com.ruoyi.common.core.domain.R;
|
||
|
|
import com.ruoyi.common.core.utils.JsonUtils;
|
||
|
|
import org.springframework.core.io.buffer.DataBuffer;
|
||
|
|
import org.springframework.http.HttpHeaders;
|
||
|
|
import org.springframework.http.HttpStatus;
|
||
|
|
import org.springframework.http.MediaType;
|
||
|
|
import org.springframework.http.server.reactive.ServerHttpResponse;
|
||
|
|
import reactor.core.publisher.Mono;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* WebFlux 工具类
|
||
|
|
*
|
||
|
|
* @author Lion Li
|
||
|
|
*/
|
||
|
|
public class WebFluxUtils {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 设置webflux模型响应
|
||
|
|
*
|
||
|
|
* @param response ServerHttpResponse
|
||
|
|
* @param value 响应内容
|
||
|
|
* @return Mono<Void>
|
||
|
|
*/
|
||
|
|
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value) {
|
||
|
|
return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 设置webflux模型响应
|
||
|
|
*
|
||
|
|
* @param response ServerHttpResponse
|
||
|
|
* @param code 响应状态码
|
||
|
|
* @param value 响应内容
|
||
|
|
* @return Mono<Void>
|
||
|
|
*/
|
||
|
|
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value, int code) {
|
||
|
|
return webFluxResponseWriter(response, HttpStatus.OK, value, code);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 设置webflux模型响应
|
||
|
|
*
|
||
|
|
* @param response ServerHttpResponse
|
||
|
|
* @param status http状态码
|
||
|
|
* @param code 响应状态码
|
||
|
|
* @param value 响应内容
|
||
|
|
* @return Mono<Void>
|
||
|
|
*/
|
||
|
|
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) {
|
||
|
|
return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 设置webflux模型响应
|
||
|
|
*
|
||
|
|
* @param response ServerHttpResponse
|
||
|
|
* @param contentType content-type
|
||
|
|
* @param status http状态码
|
||
|
|
* @param code 响应状态码
|
||
|
|
* @param value 响应内容
|
||
|
|
* @return Mono<Void>
|
||
|
|
*/
|
||
|
|
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) {
|
||
|
|
response.setStatusCode(status);
|
||
|
|
response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType);
|
||
|
|
R<?> result = R.fail(code, value.toString());
|
||
|
|
DataBuffer dataBuffer = response.bufferFactory().wrap(JsonUtils.toJsonString(result).getBytes());
|
||
|
|
return response.writeWith(Mono.just(dataBuffer));
|
||
|
|
}
|
||
|
|
}
|