本篇内容主要讲解“如何约定前后端对接数据格式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何约定前后端对接数据格式”吧!
成都创新互联公司主营蒙山网站建设的网络公司,主营网站建设方案,重庆APP开发,蒙山h5微信小程序开发搭建,蒙山网站营销推广欢迎蒙山等地区企业咨询
清单1:返回信息格式约定源码示例
package site.syksy.qingzhou.web.response; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.io.Serializable; /** * @author Raspberry */ @Schema(title = "返回信息") public class ResponseMessageimplements Serializable { private static final long serialVersionUID = 1L; @Schema(title = "是否成功") private Boolean success; @Schema(title = "数据") private T data; @Schema(title = "错误码") private String errorCode; @Schema(title = "错误信息") private String errorMessage; /** * error display type: 0 silent; 1 message.warn; 2 message.error; 4 notification; 9 page */ @Schema(title = "错误信息显示类型") private Integer showType; /** * Convenient for back-end Troubleshooting: unique request ID */ @Schema(title = "唯一请求ID") private String traceId; /** * onvenient for backend Troubleshooting: host of current access server */ @Schema(title = "当前访问服务器的主机") private String host; ......省略部分代码,详细请到轻舟源码中查找...... }
ResponseMessage 类中的属性是依据 ant design pro 文档中推荐。
约定好前后端交互数据格式后,我们将在每个 HTTP 接口方法中对返回结果进行包装,但这样显得冗余。这些重复冗余的代码能否集中处理呢?当然是可以的!只需创建一个类,实现 **ResponseBodyAdvice **接口,再加上一个注解 **@RestControllerAdvice **就能实现统一对返回结果进行包装处理,具体请看清单2中的源码。
清单2:统一包装返回信息源码示例
package site.syksy.qingzhou.web.response; import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; /** * @author Raspberry */ @RestControllerAdvice public class GeneralResponseBodyAdvice implements ResponseBodyAdvice