Java设计RestfulApi接口,实现统一格式返回
创建返回状态码枚举
package com.sunny.tool.api.enums; /**
* @Author sunt
* @Description 响应枚举状态码
* @Date 2019/10/31
**/
public enum ResultCode { // 成功
SUCCESS(200), // 失败
FAIL(400), // 未认证(签名错误)
UNAUTHORIZED(401), // 接口不存在
NOT_FOUND(404), // 服务器内部错误
INTERNAL_SERVER_ERROR(500); public int code; ResultCode(int code) {
this.code = code;
}
}
返回结果集封装
package com.sunny.tool.api.entity; import com.sunny.tool.api.enums.ResultCode; /**
* @ClassName: ResponseResult
* @Description: 返回结果集封装
* @Author: sunt
* @Date: 2019/10/31 16:11
* @Version 1.0
**/
public class ResponseResult<T> { public int code; //返回状态码200成功 private String msg; //返回描述信息 private T data; //返回内容体 public ResponseResult<T> setCode(ResultCode retCode) {
this.code = retCode.code;
return this;
} public int getCode() {
return code;
} public ResponseResult<T> setCode(int code) {
this.code = code;
return this;
} public String getMsg() {
return msg;
} public ResponseResult<T> setMsg(String msg) {
this.msg = msg;
return this;
} public T getData() {
return data;
} public ResponseResult<T> setData(T data) {
this.data = data;
return this;
} }
响应客户端结果集封装
package com.sunny.tool.api.entity; import com.sunny.tool.api.enums.ResultCode; /**
* @ClassName: Response
* @Description:将结果转换为封装后的对象
* @Author: sunt
* @Date: 2019/10/31 16:11
* @Version 1.0
**/
public class Response { private final static String SUCCESS = "success"; private final static String FAIL = "fail"; public static <T> ResponseResult<T> makeOKRsp() {
return new ResponseResult<T>().setCode(ResultCode.SUCCESS).setMsg(SUCCESS);
} public static <T> ResponseResult<T> makeOKRsp(String message) {
return new ResponseResult<T>().setCode(ResultCode.SUCCESS).setMsg(message);
} public static <T> ResponseResult<T> makeOKRsp(T data) {
return new ResponseResult<T>().setCode(ResultCode.SUCCESS).setMsg(SUCCESS).setData(data);
} public static <T> ResponseResult<T> makeErrRsp(String message) {
return new ResponseResult<T>().setCode(ResultCode.INTERNAL_SERVER_ERROR).setMsg(message);
} public static <T> ResponseResult<T> makeRsp(int code, String msg) {
return new ResponseResult<T>().setCode(code).setMsg(msg);
} public static <T> ResponseResult<T> makeRsp(int code, String msg, T data) {
return new ResponseResult<T>().setCode(code).setMsg(msg).setData(data);
}
}
以查询用户列表为例讲解具体使用
创建查询用户的Controller
package com.sunny.tool.api.controller; import com.sunny.tool.api.entity.Response;
import com.sunny.tool.api.entity.ResponseResult;
import com.sunny.tool.api.entity.UserBean;
import com.sunny.tool.api.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.List; /**
* @ClassName: TestController
* @Description:
* @Author: sunt
* @Date: 2019/10/31 16:12
* @Version 1.0
**/
@RestController
@RequestMapping("/test")
public class TestController { @Autowired
private UserService userService; @RequestMapping("/queryUserList")
public ResponseResult<List<UserBean>> queryUserList() {
try {
//调用业务层返回用户列表
List<UserBean> userList = userService.queryUserList();
return Response.makeOKRsp(userList);
} catch (Exception e) {
e.printStackTrace();
return Response.makeErrRsp("查询用户信息异常");
}
}
}
查询成功返回结果集信息

服务器异常返回结果集信息

Java设计RestfulApi接口,实现统一格式返回的更多相关文章
- Java生鲜电商平台-统一格式返回的API架构设计与实战
Java生鲜电商平台-统一格式返回的API架构设计与实战 说明:随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大 ...
- 如何设计 API 接口,实现统一格式返回?
文章目录: 目录 前后端接口交互 接口返回值约定 返回值规范 正确返回 错误返回 统一定义错误码 错误码规范 Controller 层如何用? 正确返回 错误返回 详细代码实现 错误码 Control ...
- RestFul API 统一格式返回 + 全局异常处理
一.背景 在分布式.微服务盛行的今天,绝大部分项目都采用的微服务框架,前后端分离方式.前端和后端进行交互,前端按照约定请求URL路径,并传入相关参数,后端服务器接收请求,进行业务处理,返回数据给前端. ...
- Java设计原则—接口隔离原则(转)
接口隔离原则 Interface Segregation Principle 定义: 客户端不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上 我们可以把这两个定义概括为一句话:建立 ...
- Java接口统一样式返回模板
Java接口统一样式返回模板 背景 在进行接口开发时,一般需要一个固定的返回样式,成功和失败的时候,都按照这种格式来进行统一的返回,这样,在与其他人进行接口之间的联调时不会显得很杂乱无章.而这种固定的 ...
- Spring Boot 无侵入式 实现RESTful API接口统一JSON格式返回
前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api ...
- 自定义统一api返回json格式(app后台框架搭建三)
在统一json自定义格式的方式有多种:1,直接重写@reposeBody的实现,2,自定义一个注解,自己去解析对象成为json字符串进行返回 第一种方式,我就不推荐,想弄得的话,可以自己去研究一下源码 ...
- 【swagger】2.swagger提供开发者文档--返回统一格式篇【spring mvc】【spring boot】
接着上一篇来说, 不管正常返回结果还是后台出现异常,应该返回给前台统一的响应格式. 所以这一篇就为了应对解决这个问题. ======================================== ...
- springboot返回统一接口与统一异常处理
springboot返回统一接口与统一异常处理 编写人员:yls 编写时间:2019-9-19 0001-springboot返回统一接口与统一异常处理 简介 创建统一的返回格式 Result 封装统 ...
随机推荐
- python开发面试问题
python语法以及其他基础部分 可变与不可变类型: 浅拷贝与深拷贝的实现方式.区别:deepcopy如果你来设计,如何实现: __new__() 与 __init__()的区别: 你知道几种设计模式 ...
- kafk设计要点
kafka的设计目标是高吞吐量,所以kafka自己设计了一套高性能但是不通用的协议,他是仿照AMQP( Advanced Message Queuing Protocol 高级消息队列协议)设计的 ...
- vue-cli配置跨域代理
现在使用vue大多使用了前后端分离模式,因此游览器经常显示跨域失败的信息,现在跨域的方式很多种,主要分两大类,ajax跨域,dom跨域,具体的方法就不例举啦. vue-cli作为一个强大的脚手架,内置 ...
- uni-app 项目记录
await等候,等待:期待 什么是async.awaitawait 用于等待异步完成通常async.await都是跟随Promise一起使用的 async返回的都是一个Promise对象同时async ...
- JavaScript var、let、const
var申明的变量是有作用域的 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: 'use strict'; function foo() { var x = 1; ...
- MSSQL随机修改时间
GO DECLARE @BDate datetime, @EDate datetime SET @BDate = '20190801' --上限 SET @EDate = '20190819 23:5 ...
- ~/.ssh/config文件的使用
Host github-A HostName github.com User git IdentityFile /Users/xxx/.ssh/id_rsa_A IdentitiesOnly yes ...
- hosts 屏蔽广告 定位
hosts 屏蔽广告 定位 JS Miner 挖矿 百度全家桶的全天候定位记录 各类统计服务(仅屏蔽 JS.不屏蔽控制台) 常见下载劫持 360 和百度的部分软件下载 CNNIC 根证书劫持 http ...
- Windows 文件过滤驱动经验总结
Windows 文件过滤驱动经验总结作者:sinister 本文转载自驱动开发网 看了 ChuKuangRen 的第二版<文件过滤驱动开发教程>后,颇有感触.我想,交流都是建立在平等的基础 ...
- 【Python】[技术博客] 如何对使用PYQT编写的GUI文件进行单元测试
如何对使用PYQT编写的GUI文件进行单元测试 想要对PYQT编写的GUI文件进行单元测试,我们主要用到QTest QTest里面包含了一些对窗体的各种控件进行模拟操作的函数,通过QTest对窗体进行 ...