springboot的restful接口成功失败返回值设计
springboot的restful接口成功失败返回值设计
- springboot的restful接口最终返回值ResponseEntity
- ResponseEntity赋值
- 接口返回值设计
springboot的restful接口最终返回值ResponseEntity
springboot的restful接口最终的返回值都是ResponseEntity,调用者关心的是状态码和结果.ResponseEntity继承自HttpEntity,继承了body也就是结果,新加属性status也就是状态码.
ResponseEntity赋值
- status默认200.
- 接口返回值会被封装到body中
接口返回值设计
所有返回状态码都是200,接口返回值定义成一个统一的对象三个属性code,message,data。接口调用成功有用信息code和data(如果需要返回值);接口调用失败有用信息code和message.
- code:业务码定义业务操作的结果
- message:错误信息
- data:成功的返回值
/*** 返回值对象*/
public class Result {/*** 响应码*/private String code;/*** 错误消息*/private String message;/*** 数据*/private Object data;public Result setCode(String code) {this.code = code;return this;}public Result setMessage(String message) {this.message = message;return this;}public Result setData(Object data) {this.data = data;return this;}private static final String UNKNOWN_ERROR_MESSAGE = "unknown error";/*** 成功无返回值* @return Result*/public static Result ok() {return new Result().setCode(ResultCodeConstant.SUCCESS);}/*** 成功有返回值* @return Result*/public static Result ok(Object data) {return new Result().setCode(ResultCodeConstant.SUCCESS).setData(data);}/*** 属性校验失败,错误信息message* @return Result*/public static Result bad(String message) {return new Result().setCode(ResultCodeConstant.FIELD_ILLEGAL).setMessage(message);}/*** SQL异常,异常信息message* @return Result*/public static Result error(String message) {return new Result().setCode(ResultCodeConstant.SQL_FAILURE).setMessage(message);}/*** 通用:自定义状态码,说明,返回值* @return Result*/public static Result build(String code, String message, Object data) {return new Result().setCode(code).setMessage(message).setData(data);}
}
/*** 业务响应码*/
public class ResultCodeConstant {/** 成功 */public static final String SUCCESS = "0000";/** 参数不合法 */public static final String FIELD_ILLEGAL = "1000";/** sql执行失败 */public static final String SQL_FAILURE = "2000";
}import org.springframework.web.bind.annotation.*;
/*** 接口*/
@RestController
@RequestMapping("/demo")
public class DemoController{@DeleteMapping@Overridepublic Result deleteBatchIds(@RequestParam List<Long> ids) {if (ids == null && ids.size == 0) {logger.error("ids is required.");return Result.bad("ids is required.");}//TODO 处理idsreturn Result.ok();//return Result.error("message");}
}
springboot的restful接口成功失败返回值设计相关推荐
- Restful Api 写法——统一返回值
记录Restful Api 自定义统一返回值方式! 以下为示例代码: Code码Java类 package *.*.*;import java.util.ArrayList; import java. ...
- c#分页_使用Kotlin搭配Springboot开发RESTFul接口(二)自定义配置、跨域、分页
前言 上一篇文章请看这里:使用Kotlin搭配Springboot开发RESTFul接口与服务部署 上一篇文章介绍了Kotlin搭配Springboot的开发流程,从搭建项目.ORM.Controll ...
- python获取接口返回值_Python+request 登录接口reponse的返回值token跨py文件的传递《二》...
主要使用场景: 一般我们在进行接口测试时,依赖登录接口后reponse中的某些返回值,因此需要将login接口单独写一个py文件,另外的py文件均可调用login的reponse返回值使用.共用登录接 ...
- [Day14]Eclipse高级、类与接口作为参数返回值
l 不同修饰符的使用 类,最常使用public修饰 成员变量,最常使用private修饰 成员方法,最常使用public修饰 l 自定义数据类型的使用 类作为方法参数时,说明要向方 ...
- SSM8==纯注解SSM项目:实现单表CRUD、事务、自定义异常和统一异常处理、RESTFUL风格接口、统一返回值格式(状态码、内容、消息)、JSON传参、axios、vue.js、elementUI
环境:IDEA2021+JDK8+MAVEN3.8+TOMCAT7插件 前端:axios.vue.js.elementUI 后端:见POM.XML相关依赖,主要有数据库MySQL5.7 ,数据源Dru ...
- SpringBoot按照restful风格统一异常返回
小白一枚,最近使用restful风格给前端返回数据,但有时候后台出异常了,返回的内容不是封装好的返回结果.导致前端渲染过程中出现连锁问题.搞得人头疼,而且看网上的很多人也比较繁琐,不清爽.既然自己解决 ...
- springboot 的异步任务 :无返回值 和有返回值
在想要异步执行的方法上加上@Async注解,在controller上加上@EnableAsync,即可. 注:这里的异步方法,只能在本类之外调用,在本类调用是无效的. 无返回值的异步任务 servic ...
- java compareto 返回值_Java comparable接口及compareTo返回值所决定的升序降序问题
我们在学习java基础的时候知道,基本数据类型数组可以直接调动Arrays类的静态sort方法,然后输出. 例如: int iArr[] = {1,2,4,6}; Arrays.sort(iArr) ...
- 抽象类、接口作为方法返回值和参数
1.抽象类作为方法的参数 抽象类作为方法参数传递时,需要传入一个实现抽象类所有抽象方法的子类对象. 2.抽象类作为方法的返回值 抽象类作为方法的返回值时,需要返回一个实现了抽象类所有抽象方法的子类对象 ...
- 企业信息化,电商商品详情API接口,数据返回值说明,商品详情,关键词搜索,价格监控,卖家买家订单等相关数据
都在说API,API到底是什么? 对于很多非IT人士而言,API ≈ 听不懂. 其实日常生活中,我们有很多类似API的场景,比如: 电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来 ...
最新文章
- 成功解决利用matplotlib.pyplot进行绘图的时候整个画布中的绘制曲线只显示一部分
- [eBook] SQL 2008
- 入门训练 Fibonacci数列
- rn 跳转至html5,ReactNative-从RN端跳转到原生界面
- 用计算机表白的数字,用数字表白
- OpenCV辅助对象(help objects)(5)_DataType
- Kafka Consumer端的一些解惑
- 时间预定java,在预定的时间运行任务java,apache
- CESM笔记——CAM和CAM-Chem学习资料推荐
- Ubuntu16.04 安装火狐浏览器(中国版)
- 电子电路设计中的脉冲电路详解
- ISA-95/B2MML教程 : 从用例到XML消息的整合实践
- 计算机组策略定时开机脚本,批处理+组策略 实现规定时间段无法开机and定时关机...
- POJ 1877 Flooded! G++
- 随心测试_Python Se_005鼠标悬停操作
- C++代码秀(你干嘛!!!哎呦!!!)
- android常用控件实验报告,ui设计实验报告.doc
- AMD中国的精神-郭可尊
- 关于WIN10开机无法输入密码的问题
- Goland导入github包