spring boot 接口返回值封装 - qikegu.com
- Spring Boot 介绍
- Spring Boot 开发环境搭建(Eclipse)
- Spring Boot Hello World (restful接口)例子
- spring boot 连接Mysql
- spring boot配置druid连接池连接mysql
- spring boot集成mybatis(1)
- spring boot集成mybatis(2) – 使用pagehelper实现分页
- spring boot集成mybatis(3) – mybatis generator 配置
- spring boot 接口返回值封装
- spring boot输入数据校验(validation)
- spring boot rest 接口集成 spring security(1) – 最简配置
- spring boot rest 接口集成 spring security(2) – JWT配置
- spring boot 异常(exception)处理
- spring boot 环境配置(profile)切换
- spring boot redis 缓存(cache)集成
相关推荐
spring boot 接口返回值封装
概述
rest接口会返回各种各样的数据,如果对接口的格式不加约束,很容易造成混乱。
在实际项目中,一般会把结果放在一个封装类中,封装类中包含http状态值,状态消息,以及实际的数据。
本篇实现一个结果的封装类。
封装类代码
Result.java
public class Result implements Serializable {
@SuppressWarnings("unused")
private static final org.slf4j.Logger log = LoggerFactory.getLogger(Result.class);
private static final long serialVersionUID = -1802122468331526708L;
private int status = -1;
private String message = "待处理";
private Map<String, Object> data = new HashMap<String, Object>();
public Result(){}
public Result(int status, String message){
this.status = status;
this.message = message;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Map<String, Object> getData() {
return data;
}
public void setData(Map<String, Object> data) {
this.data = data;
}
public void putData(String key, Object value) {
data.put(key, value);
}
public void removeData(String key) {
data.remove(key);
}
@Override
public String toString() {
return "Result{" +
"status=" + status +
", message='" + message + '\'' +
", data=" + data +
'}';
}
}
解释
代码应该很好懂,主要是3个成员:
- status – 状态值,应该对应于http的状态值(200,404等等)
- messsage – 状态消息,如“页面未找到”
- data – 是一个hashmap,可放入键值对
下面会创建一个实际项目来演示Result封装类的用法。
创建项目
创建spring boot项目
打开Eclipse,创建spring boot的spring starter project项目,选择菜单:File > New > Project ...
,弹出对话框,选择:Spring Boot > Spring Starter Project
,在配置依赖时,勾选web
,如不清楚怎样创建spring boot项目,参照教程: [spring boot hello world (restful接口)例子]。
添加代码
项目增加文件如下图
Result.java文件已经在上面说明过。
控制类HelloController.java
HelloController控制类实现一个接口,用于测试封装类:
@RestController
public class HelloController {
@RequestMapping(value="/hello", method = RequestMethod.GET, produces="application/json")
public ResponseEntity<Result> hello(@RequestParam(value="bad", required=false, defaultValue="false") boolean bad) {
// 结果封装类对象
Result res = new Result(200, "ok");
if(bad) {
res.setStatus(400);
res.setMessage("Bad request");
// ResponseEntity是响应实体泛型,通过它可以设置http响应的状态值,此处返回400
return new ResponseEntity<Result>(res, HttpStatus.BAD_REQUEST);
}
// 把结果数据放进封装类
res.putData("words", "Hello world!");
// ResponseEntity是响应实体泛型,通过它可以设置http响应的状态值,此处返回200
return ResponseEntity.ok(res);
}
}
解释
我们把返回的“Hellow world!”字符串放进Result封装类返回,同时为使http响应头部的状态值与Result中的状态值一致,使用ResponseEntity
设置状态值。
当请求/hello
,返回200;请求/hello?bad=true
,返回400。
运行
Eclipse左侧,在项目根目录上点击鼠标右键弹出菜单,选择:run as -> spring boot app
运行程序。 打开Postman访问接口,运行结果如下:
当请求/hello
,返回200
请求/hello?bad=true
,返回400
总结
本文介绍了结果封装类,供大家在实践中参考。
Doc navigation
推荐阅读
-
[Spring Boot]使用自定义注解统一请求返回值
-
详解Spring Boot实战之Filter实现使用JWT进行接口认证
-
spring boot 2 集成JWT实现api接口认证
-
快速入门Spring Boot之开发你的第一个JSON接口
-
Spring-Boot ☞ ShapeFile文件读写工具类+接口调用
-
Spring Boot + Redis 实现接口幂等性
-
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常
-
Spring boot + Jsoup 搭建高清视频解析系统接口只需1分钟
-
spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
-
Spring Boot CommandLineRunner接口详解