本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30462
一, 返回结果模版示例
{
"success": true,
"code": 0,
"msg": "成功",
"data": {
"user_remedys": [
{
"user_id": "abd754f7",
"work_type": 1,
"status": 2,
"reason": "忘记打卡",
}
]
}
二, 实现
2.1 定义一个Result模板类
package com.ceshiren.springtest.util;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel(value="Result返回模板类",description="返回结果体封装")
public class Result<T> implements Serializable {
//HashMap已实现的序列化实例对象
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "是否成功", example = "true")
private boolean success;
@ApiModelProperty(value = "返回结果码 0 成功 1 失败", example = "1", required = true, allowableValues = "1,0")
private int code;
@ApiModelProperty(value = "返回消息", example = "成功", allowableValues = "成功,失败" )
private String message;
@ApiModelProperty(value = "响应结果数据")
private T data;
public static <T> Result<T> OK(){
Result<T> result = new Result<>();
result.setSuccess(true);
result.setCode(ResultCode.SUCCESS);
result.setMessage("成功");
return result;
}
public static <T> Result<T> error(){
Result<T> result = new Result<>();
result.setSuccess(false);
result.setCode(ResultCode.ERROR);
result.setMessage("失败");
return result;
}
public Result<T> message(String message){
this.setMessage(message);
return this;
}
public Result<T> code(Integer code){
this.setCode(code);
return this;
}
public Result<T> data(T value){
this.setData(value);
return this;
}
}
2.2 新建一个接口类User2Service,定义一个登录接口
package com.ceshiren.springtest.service;
import com.ceshiren.springtest.dto.UserDto;
import com.ceshiren.springtest.util.Result;
public interface User2Service {
//用户登录接口
Result login(UserDto userDto);
}
2.3 创建一个接口实现类User2ServiceImpl
package com.ceshiren.springtest.service;
import com.ceshiren.springtest.dto.UserDto;
import com.ceshiren.springtest.util.Result;
import org.springframework.stereotype.Service;
@Service("user2")
public class User2ServiceImpl implements User2Service{
@Override
public Result login(UserDto userDto) {
if(userDto.getUsername().equals("demi") && userDto.getPassword().equals("123456")){
// return Result.OK().data(userDto);
return Result.OK().data(userDto).code(1000).message("登录成功");
}else{
// return Result.error().data(userDto);
return Result.error().data(userDto).code(1003).message("登录失败");
}
}
}
2.4 创建一个控制类UserController
package com.ceshiren.springtest.controller;
import com.ceshiren.springtest.dto.UserDto;
import com.ceshiren.springtest.service.User2Service;
import com.ceshiren.springtest.util.Result;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api("user登录接口")
public class UserController {
@Autowired
User2Service user2;
@PostMapping(value = "/user/login", produces = "application/json")
Result logIn(@RequestBody UserDto userDto){
return user2.login(userDto);
}
}
2.5 Swagger页面展示
推荐学习
【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)
【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试
【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff
【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享
【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装
【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?
【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!
【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我
【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化
【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试
【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !
【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置
【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)
【霍格沃兹测试开发】6 小时轻松上手功能测试/ 软件测试工作流程/ 测试用例设计/Bug 管理
【霍格沃兹测试开发】零基础小白如何使用Postman ,从零到一做接口自动化测试/ 从零基础到进阶到实战
【霍格沃兹测试开发】建议收藏全国CCF 测试开发大赛Python 接口自动化测试赛前辅导 / 项目实战
更多软件测试开发视频教程点此
软件测试职业发展
零基础入门
测试必备编程篇
自动化测试
性能测试
测试管理
工程效能篇
面试求职篇
软件测试的面试宝典,内含一线互联网大厂面试真题、面试技巧、软件测试面试简历指导,免费领取!