mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
5.0
This commit is contained in:
@@ -63,6 +63,11 @@ public class ApiInfoDTO implements Serializable {
|
||||
*/
|
||||
private Integer isNeedToken;
|
||||
|
||||
/**
|
||||
* 是否有公共响应参数
|
||||
*/
|
||||
private Integer hasCommonResponse;
|
||||
|
||||
private Integer status;
|
||||
|
||||
public String buildApiNameVersion() {
|
||||
|
@@ -71,6 +71,11 @@ public class ApiInfo {
|
||||
*/
|
||||
private Integer isNeedToken;
|
||||
|
||||
/**
|
||||
* 是否有公共响应参数
|
||||
*/
|
||||
private Integer hasCommonResponse;
|
||||
|
||||
/**
|
||||
* 注册来源,1-系统注册,2-手动注册
|
||||
*/
|
||||
|
@@ -0,0 +1,22 @@
|
||||
package com.gitee.sop.gateway.response;
|
||||
|
||||
/**
|
||||
* 没有公共返回结果
|
||||
*
|
||||
* @author 六如
|
||||
*/
|
||||
public class NoCommonResponse extends BaseResponse {
|
||||
|
||||
public static NoCommonResponse success(Object data) {
|
||||
NoCommonResponse apiResponse = new NoCommonResponse();
|
||||
apiResponse.setCode(SUCCESS_CODE);
|
||||
apiResponse.setMsg(SUCCESS_MSG);
|
||||
apiResponse.setData(data);
|
||||
return apiResponse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean needWrap() {
|
||||
return false;
|
||||
}
|
||||
}
|
@@ -1,5 +1,8 @@
|
||||
package com.gitee.sop.gateway.response;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@@ -9,4 +12,9 @@ public interface Response {
|
||||
|
||||
Object getData();
|
||||
|
||||
@JSONField(serialize = false)
|
||||
@JsonIgnore
|
||||
default boolean needWrap() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -110,8 +110,12 @@ public class ParamExecutorImpl implements ParamExecutor<HttpServletRequest, Http
|
||||
FileData fileData = (FileData) data;
|
||||
ResponseUtil.writerFile(fileData, response);
|
||||
} else {
|
||||
// 此处还可以判断charset,返回xml格式
|
||||
ResponseUtil.writerText(apiRequestContext, apiResponse, response);
|
||||
Object responseData = apiResponse;
|
||||
// 不需要公共参数
|
||||
if (!apiResponse.needWrap()) {
|
||||
responseData = data;
|
||||
}
|
||||
ResponseUtil.writerText(apiRequestContext, responseData, response);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,12 @@
|
||||
package com.gitee.sop.gateway.service;
|
||||
|
||||
import com.gitee.sop.gateway.common.ApiInfoDTO;
|
||||
import com.gitee.sop.gateway.common.enums.YesOrNoEnum;
|
||||
import com.gitee.sop.gateway.config.ApiConfig;
|
||||
import com.gitee.sop.gateway.request.ApiRequestContext;
|
||||
import com.gitee.sop.gateway.response.ApiResponse;
|
||||
import com.gitee.sop.gateway.response.ApiResponseLower;
|
||||
import com.gitee.sop.gateway.response.NoCommonResponse;
|
||||
import com.gitee.sop.gateway.response.Response;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -22,6 +24,11 @@ public class ResultWrapperImpl implements ResultWrapper {
|
||||
|
||||
@Override
|
||||
public Response wrap(ApiRequestContext context, ApiInfoDTO apiInfoDTO, Object result) {
|
||||
Integer hasCommonResponse = apiInfoDTO.getHasCommonResponse();
|
||||
// 不需要公共返回参数
|
||||
if (YesOrNoEnum.of(hasCommonResponse) == YesOrNoEnum.NO) {
|
||||
return NoCommonResponse.success(result);
|
||||
}
|
||||
if (Objects.equals(apiConfig.getFieldLowercase(), true)) {
|
||||
return ApiResponseLower.success(result);
|
||||
} else {
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package com.gitee.sop.gateway.util;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import com.gitee.sop.gateway.request.ApiRequest;
|
||||
import com.gitee.sop.gateway.request.ApiRequestContext;
|
||||
import com.gitee.sop.gateway.request.RequestFormatEnum;
|
||||
@@ -17,7 +15,6 @@ import java.io.InputStream;
|
||||
* @author 六如
|
||||
*/
|
||||
public class ResponseUtil {
|
||||
private static final XmlMapper XML_MAPPER = new XmlMapper();
|
||||
|
||||
public static void writerFile(FileData fileData, HttpServletResponse response) throws IOException {
|
||||
InputStream inputStream = fileData.getInputStream();
|
||||
@@ -37,11 +34,11 @@ public class ResponseUtil {
|
||||
String format = apiRequest.getFormat();
|
||||
if (RequestFormatEnum.of(format) == RequestFormatEnum.XML) {
|
||||
response.setContentType(MediaType.APPLICATION_XML_VALUE);
|
||||
String xml = XML_MAPPER.writeValueAsString(apiResponse);
|
||||
String xml = XmlUtil.toXml(apiResponse);
|
||||
response.getWriter().write(xml);
|
||||
} else {
|
||||
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
|
||||
String json = JSON.toJSONString(apiResponse);
|
||||
String json = JsonUtil.toJSONString(apiResponse);
|
||||
response.getWriter().write(json);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,18 @@
|
||||
package com.gitee.sop.gateway.util;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
public class XmlUtil {
|
||||
|
||||
private static final XmlMapper XML_MAPPER = new XmlMapper();
|
||||
|
||||
|
||||
public static String toXml(Object object) throws JsonProcessingException {
|
||||
return XML_MAPPER.writeValueAsString(object);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user