软件测试学习笔记丨 Spring Boot 统一返回结果模版
 作者:测试人
- 2024-05-15  北京
 本文字数:1962 字
阅读完需:约 6 分钟
本文转自测试人社区,原文链接: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 页面展示
 软件测试开发免费视频教程分享
 
划线
评论
复制
发布于: 刚刚阅读数: 4
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/fcd5971bad2e36d9c05cc1873】。文章转载请联系作者。
测试人
关注
专注于软件测试开发 2022-08-29 加入
霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284







    
评论