首先,我们查看Docket的源码,可以看到有一个控制返回码的字段属性

以及对应的方法

可见,我们要创建一个新的Docket实例,并在其中修改返回码配置
参考globalResponses方法,我们需要准备好两个参数,HttpMethod和Response的List
查看HttpMethod源码,易得即是一个常用请求方法的枚举类:

查看Response的源码,我们仅需要准备好code、description即可
因此,我在model包中定义一个ResultCode的枚举类,并作简单的封装

| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | package tech.maiquer.metrichall.model;
 public enum ResultCode {
 
 SUCCESS(200, "成功"),
 PARAM_IS_INVALID(1001, "参数无效"),
 PARAM_IS_BLANK(1002, "参数为空"),
 USER_NOT_LOGGED_IN(2001, "用户未登录"),
 USER_LOGIN_ERROR(2002, "用户不存在或密码错误"),
 USER_NOT_EXIST(2003, "用户不存在"),
 USER_HAS_EXISTED(2004, "用户已存在"),
 INSERT_FAIL(3001, "添加失败"),
 DELETE_FAIL(3002, "删除失败"),
 UPDATE_FAIL(3003, "更新失败"),
 QUERY_FAIL(3004, "查询为空");
 
 private Integer code;
 
 private String message;
 
 public Integer getCode() {
 return code;
 }
 
 public String getMessage() {
 return message;
 }
 
 ResultCode(Integer code, String message) {
 this.code = code;
 this.message = message;
 }
 
 }
 
 | 
在SwaggerConfig中,通过流操作,封装好自定义的返回状态码到Response的List列表中,并将其封装到Docket实例并返回
封装Response并组装
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | @Beanpublic Docket docket() {
 
 List<Response> responseList = new ArrayList<>();
 Arrays.stream(ResultCode.values()).forEach(resultCode -> {
 responseList.add(
 new ResponseBuilder().code(resultCode.getCode().toString()).description(resultCode.getMessage()).build()
 );
 });
 
 return new Docket(DocumentationType.OAS_30)
 .globalResponses(GET, responseList)
 .globalResponses(POST, responseList)
 .globalResponses(PUT, responseList)
 .globalResponses(DELETE, responseList);
 }
 
 | 
查看效果:
