swagger的基本用法

  • Post author:
  • Post category:其他




1.导入swagger的依赖包

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>



2.配置swagger

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger的配置类
 */
@Configuration  //配置类
@EnableSwagger2 //支持Swagger2
public class SwaggerConfig {

    @Bean
    public Docket createDocket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())	//创建该api的基本信息(这些信息会显示在文档页面中)
                .select()	//函数返回一个ApiSelectorBuilder实例,用来控制那些借口暴露给Swagger-ui来显示
                .apis(RequestHandlerSelectors.basePackage("com.web.controller"))	//指定需要扫描的包路径
                .paths(PathSelectors.any())
                .build()
                .enable(true);	//设置开关
    }

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("SpringBoot项目")
                .description("实现增删改查")
                .version("1.0")
                .build();
    }
}



3.在controller和vo添加相应注解

import com.entity.SysUser;
import com.service.SysUserService;
import com.vo.req.RegisterSysUserReqVo;
import com.vo.req.UpdateSysUserReqVo;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/test")
@Api(tags = "用户模块")	//@Api注解可以解释该模块的功能
public class UserController {

    @Autowired
    private SysUserService sysUserService;
    
    @PostMapping("/user")
    @ApiOperation(value = "用户注册接口") //@ApiOperation注解解释该接口的功能
    @ApiResponses({						//返回的状态码等信息
            @ApiResponse(code = 200, message = "响应成功", response = SysUser.class),
            @ApiResponse(code = 404, message = "服务器访问失败")
    })
    	//@ApiParam解释该参数的意思
    public String register(@ApiParam(value = "用户注册封装的信息") @RequestBody RegisterSysUserReqVo vo){
        return sysUserService.registerSysUser(vo);
    }

    @PutMapping("/user")
    @ApiOperation(value = "更新用户接口")
    @ApiResponses({
            @ApiResponse(code = 200, message = "响应成功", response = SysUser.class),
            @ApiResponse(code = 404, message = "服务器访问失败")
    })
    public String update(@ApiParam(value = "更新用户封装的信息") @RequestBody UpdateSysUserReqVo vo){
        return sysUserService.updateSysUser(vo);
    }

    @ApiResponses({
            @ApiResponse(code = 200, message = "响应成功", response = SysUser.class),
            @ApiResponse(code = 404, message = "服务器访问失败")
    })
    @DeleteMapping("/user/{id}")
    @ApiOperation(value = "Restful风格的删除用户信息接口")
    public String delete(@ApiParam(value = "被删除用户的id", required = true) @PathVariable("id") String id){
        return sysUserService.deleteSysUser(id);
    }
}
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
	//@ApiModel解释该vo的信息
@ApiModel(value = "com.vo.req.RegisterSysUserReqVo", description = "用户注册的信息")	
public class RegisterSysUserReqVo {

    @ApiModelProperty(value = "用户名")	//解释该字段的意思
    private String username;

    @ApiModelProperty("密码")
    private String password;

    @ApiModelProperty("手机号码")
    private String phone;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("性别")
    private String sex;
}



4.运行后的swagger页面

运行后在浏览器输入:http://localhost:8080/swagger-ui.html#/

最后类似于这个页面

在这里插入图片描述



版权声明:本文为weixin_44234016原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。