首页 > 其他分享 >Swagger2—整合SpringBoot

Swagger2—整合SpringBoot

时间:2022-08-28 22:26:17浏览次数:58  
标签:SpringBoot documentation 接口 value 文档 Swagger2 整合 import springfox

一、Swagger

用于生成服务器接口的规范文档的工具,并且能够对接口进行测试的工具

1.1 作用

  • 生成接口说明文档
  • 对接口进行测试

1.2 整合

  • 添加依赖(Swagger2、Swagger UI) 在controller模块添加依赖
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>


  • 在Controller模块中创建Swagger的配置(Java配置方式)
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
//配置类
@Configuration
//开启依赖
@EnableSwagger2
public class SwaggerConfig {
    /*Swagger会帮助我们生成接口文档
    * 1.配置生成的文档信息
    * 2.配置生成规则
    */
    /*必须初始的一个对象Docket
    * Docket封装接口文档信息
    */
    @Bean
    public Docket getDocket(){
        ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
        apiInfoBuilder.title("商城后端接口说明")
            .description("这是一个接口规范详细")
            .version("版本:V 1.0.0")
            .contact(new Contact("万万","www.wan.com","[email protected]"));
        //如何获取接口、抽象类对象
        //new 接口,需要在构造器后的()实现接口中的所有抽象方法
        //new 子类/实现类
        //工厂模式
        ApiInfo apiInfo =apiInfoBuilder.build();
        Docket docket=new Docket(DocumentationType.SWAGGER_2)//文档风格
            .apiInfo(apiInfo)//指定生成的文档中的页面信息:文档标题、版本、作者
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.wan.controller"))//对那个包的类生成文档
            .paths(PathSelectors.any())//.regex("/user/")只会对user的请求产生说明
            .build();

        return docket;
    }

}

访问http://localhost:8080/swagger-ui.html

  • swagger 3.0.0集成stater
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

只需在上述配置类加上替换@EnableOpenApi

访问的网址为:http://localhost:8080/swagger-ui/index.html

1.3 Swagger注解说明

Swagger提供了一套注解,可以对每个接口详细描述

@Api类注解,在控制类添加此注解,可以对控制器类进行功能说明

@Api(value = "提供商品添加、修改、删除及查询的相关接口",tags = "商品管理")

@ApiOperation方法注解:说明接口方法的作用

@ApiImplicitParamApiImplicitParams方法注解,说明接口方法的参数

@RestController
@RequestMapping("/user")
@Api(value = "提供用户登录和注册接口",tags = "用户管理")
public class UserController {
    @Autowired
    private UserService userService;
    @ApiOperation("用户登录接口")
    @ApiImplicitParams({
        @ApiImplicitParam(type= "string",name = "username",value = "用户登录账号",required = true),
        @ApiImplicitParam(type = "string",name = "password",value = "用户登录密码",required = false,defaultValue = "123456")
    })
    @RequestMapping(value = "/login",method = RequestMethod.GET)
    public ResultVo login(@RequestParam("username") String name,
                          @RequestParam(value = "password",defaultValue = "123456")String pwd){
        return userService.checkLogin(name,pwd);
    }
    @RequestMapping(value = "/regist",method = RequestMethod.POST)
    public ResultVo regist(User user){
        return new ResultVo(1000,"Success",null);
    }

}

@ApiModel@ApiModelProperty 当接口参数和返回值信息为对象类型时,在实体类中添加注解说明

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "用户信息",description = "用户/卖家信息")
public class User {
    @ApiModelProperty(dataType = "int",required = false,example ="0")
    private int userId;
    @ApiModelProperty(dataType = "string",required = true,value = "用户注册账号")
    private String userName;
    @ApiModelProperty(dataType = "string",required = true,value = "用户注册密码")
    private String userPwd;
    @ApiModelProperty(dataType = "string",required = true,value = "用户头像的url")
    private String userImg;
}

@ApiIgnore 接口方法注解,添加此注解的方法将不会生成到接口文档中

1.4 Swagger-ui插件

  • 导入依赖
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/swagger-bootstrap-ui -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>

标签:SpringBoot,documentation,接口,value,文档,Swagger2,整合,import,springfox
From: https://www.cnblogs.com/wanwanmeixiangdao/p/16633859.html

相关文章

  • 1.Swagger2
    1,引入Swagger2相关依赖<!--https://mvnrepository.com/artifact/io.springfox/springfox-swagger2--><dependency><groupId>io.springfox</groupId><artifa......
  • 4.Springboot多配置
    2.Profile2.1Profile多文件我们在主配置文件编写的时候,文件名可以是application-{profifile}.properties/yml默认使用application.properties的配置;2.2yml支持多文......
  • 5.Springboot离线新建环境
    1.新建Maven项目2.pom文件导入org.springframework.bootspring-boot-starter-parent2.7.2org.springframework.bootspring-boot-starter-web<dependency>......
  • 【SpringBoot】整合Shiro
    1.什么是Shiro?ApacheShiro是一个java的安全权限框架。Shiro是可以非常容易得开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成,认......
  • SpringBoot日志系统——logback
    logback是SpringBoot内置的日志处理框架,你会发现spring-boot-starter其中包含了spring-boot-starter-logging,该依赖内容就是SpringBoot默认的日志框架logback。而spr......
  • springboot+docker发布项目20220827
    1、springboot打包项目 1)、application-dev.yml     对应配置修改 2)、项目package 生成包    3)、生成包         4)、运行......
  • springBoot 获取注解参数的原理
    springBoot获取注解参数的原理原理图先得到请求的request在获取可以处理请求的方法的Mapping映射器DispatcherServlet中的doDispatch方法//De......
  • SM整合的步骤
    SM整合的步骤1>建表2>新建项目,选择quickstart模板3>修改目录4>修改pom.xml文件,添加相关的依赖5>添加MyBaits相应的模板(SqlMapconfig.xml和XXXMapper.xml文件)6>添......
  • 78、使用Jenkins Docker 部署SpringBoot项目
    1、centOS安装Docker1、更新软件源:yumupdate2、卸载旧版本:yumremovedockerdocker-commondocker-selinuxdocker-engine3、安装软件包:yuminstall-yyum-utils......
  • SpringBoot集成thymeleaf不生效问题
    场景:在做springBoot整合Theamleaf时,用了@RestController注解,在进行试图渲染的过程中,遇到试图没有渲染成功,找到了原因,记录一下。 第一种情况:使用@RestController注解pac......