01.swagger

谭晓博
2023-12-01

01.swagger

01.初步swagger

01.初步swagger

API详细说明

注释汇总

作用范围API使用位置
对象属性@ApiModelProperty用在出入参数对象的字段上
协议集描述@Api用于controller类上
协议描述@ApiOperation用在controller的方法上
Response集@ApiResponses用在controller的方法上
Response@ApiResponse用在 @ApiResponses里边
非对象参数集@ApiImplicitParams用在controller的方法上
非对象参数描述@ApiImplicitParam用在@ApiImplicitParams的方法里边
描述返回对象的意义@ApiModel用在返回对象类上

UserController

package com.zhy.system.controller;

@RestController
@RequestMapping("/system/user")
@Api(value = "用户管理")
public class UserController {
    @Autowired
    private UserService userService;
//@RequestMapping("/findUsers")  //做查询权限还是要@RequestMapping
    @GetMapping //查询所有
    @ApiOperation(value = "查询所有的用户信息",notes = "")
    public List<User> findUsers(){
        List<User> list = userService.list();
        return list;
    }
}

XinGuanApplication

package com.zhy;

@SpringBootApplication
@MapperScan("com.zhy.system.mapper")
//开启SwaggerUI
@EnableSwagger2
public class XinGuanApplication {
    public static void main(String[] args) {
        SpringApplication.run(XinGuanApplication.class,args);
    }
}

02.response

02.response

控制器中需要对List 返回的结果进行一个处理,才能与前端进行合理的绑定

CustomizeResultCode

package com.zhy.response;

public interface CustomizeResultCode {
    /**
     * 获取错误状态码
     * @return 错误状态码
     */
    Integer getCode();
    /**
     * 获取错误信息
     * @return 错误信息
     */
    String getMessage();
}

ResultCode

package com.zhy.response;

/**
 * @Author: zhy
 * @Description: 返回码定义
 */
public enum ResultCode implements CustomizeResultCode {
    //4.定义方法,枚举的形式
    /**
     * 20000:"成功"
     */
    SUCCESS(20000, "成功"),
    /**
     * 20001:"失败"
     */
    ERROR(20001, "失败");

    //2.定义属性
    private Integer code;
    private String message;

    //3.构造方法
    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    //1.添加对应接口的方法
    @Override
    public Integer getCode() {
        return code;
    }

    //1.添加对应接口的方法
    @Override
    public String getMessage() {
        return message;
    }
}

注解无法使用,将xinguan-base-web的pom的dependencies内容放在xinguan-base-common中

然后让xinguan-base-web得到xinguan-base-common内容

xinguan-base-web的pom.xml

    <dependencies>
        <dependency>
            <groupId>com.zhy</groupId>
            <artifactId>xinguan-base-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

Result

package com.zhy.response;

/**
 * 公共返回结果
 */
@Data
public class Result {
    //1.出入的参数对象
    @ApiModelProperty(value = "是否成功")
    private Boolean success;
    @ApiModelProperty(value = "返回码")
    private Integer code;
    @ApiModelProperty(value = "返回消息")
    private String message;
    @ApiModelProperty(value = "返回数据")
    private Map<String,Object> data = new HashMap<>();

    //2.构造方法私有化,里面的方法都是静态方法
    //达到保护属性的作用
    private Result(){

    }

    //3.这里是使用链式编程
    public static Result ok(){
        Result result = new Result();
        result.setSuccess(true);
        result.setCode(ResultCode.SUCCESS.getCode());
        result.setMessage(ResultCode.SUCCESS.getMessage());
        return result;
    }
    public static Result error(){
        Result result = new Result();
        result.setSuccess(false);
        result.setCode(ResultCode.ERROR.getCode());
        result.setMessage(ResultCode.ERROR.getMessage());
        return result;
    }

    //4.自定义返回成功与否
    public Result success(Boolean success){
        this.setSuccess(success);
        return this;
    }
    //4.自定义返回消息结果
    public Result message(String message){
        this.setMessage(message);
        return this;
    }
    //4.自定义返回(状态码)结果
    public Result code(Integer code){
        this.setCode(code);
        return this;
    }
    //4.自定义返回键值对,返回数据库数据
    //Map.put () 方法将获取 Map 集合的所有键名
    public Result data(String key,Object value){
        this.data.put(key,value);
        return this;
    }
    //set方法设置key所对应的键值,然后返回整个Map结构
    public Result data(Map<String,Object> map){
        this.setData(map);
        return this;
    }
}

UserController

package com.zhy.system.controller;
/**
 * 用户表 前端控制器
 * @author zhy
 */
@RestController
@RequestMapping("/system/user")
@Api(value = "用户管理")
public class UserController {
    @Autowired
    private UserService userService;
//    @RequestMapping("/findUsers")     //做查询权限还是要@RequestMapping
    @GetMapping //查询所有
    @ApiOperation(value = "查询所有的用户信息",notes = "")
    /*
     * 0101编写的遍历
     *     public List<User> findUsers(){
     *         List<User> list = userService.list();
     *         return list;
     *    }
     */
    /**
     *  0102编写的遍历
     *  需求修改:控制器中需要对List<User> 返回的结果进行一个处理,才能与前端进行合理的绑定
     *  编写思路:使用链式编程的方法
     */
        public Result findUsers(){
        List<User> list = userService.list();
        return Result.ok().data("users",list);
    }
}
 类似资料: