SpringBoot使用Swagger2

简介: 代码如下

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;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //swagger文档扫描的包,这里扫描的是全部
                //如果扫描指定包下的可以这样写
                //.apis(RequestHandlerSelectors.basePackage("com.xxx.yyy.controller"))
            .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("标题")
                .description("描述")
                .version("版本")
                .termsOfServiceUrl("公司网址")
                .build();
    }
}

3.测试Controller

@RestController
@RequestMapping("/test")
public class TestController {
    @GetMapping("/test01")
    public String test01(){
        return "test01";
    }
    @GetMapping("/test02")
    public String test02(){
        return "test02";
    }
    @GetMapping("/test03")
    public String test03(){
        return "test03";
    }
}

4.测试

项目正常启动后浏览器输入网址

http://localhost:8100/swagger-ui.html#/

(这里的端口填写自己服务的端口,我的是8100,默认端口8080)

2345_image_file_copy_499.jpg

2345_image_file_copy_500.jpg

2345_image_file_copy_501.jpg

2345_image_file_copy_502.jpg

测试结果

2345_image_file_copy_503.jpg

5.swagger的注解

上面就是swagger的基本使用

但swagger也提供了一些注解,这里例举一些常用注解

Api注解

      用于标记当前类为Swagger的文档资源。其中含有几个常用属性,分别说明如下。

• value:定义当前接口文档的名称。

• description:用于定义当前接口文档的介绍。

@Api(value = "controller接口",description = "用户测试接口")
public class TestController {

2345_image_file_copy_504.jpg

ApiOperation注解

      @ApiOperation用在接口的方法上,主要用来注解请求接口。其中包含几个常用属性,分别说明如下。

• value:对API的简短描述。

• note:API的有关细节描述。

• hidden:如果值为true,就会在文档中隐藏。

演示

    @GetMapping("/test01")
    @ApiOperation(value = "测试方法01",notes = "细节的描述,细节的测试",hidden = false)
    public String test01(){
        return "test01";
    }

2345_image_file_copy_505.jpg

ApiImplicitParam、ApiImplicitParams注解

      使用在API请求方法上,@ApiImplicitParams的子集是@ApiImplicitParam注解,其中@ApiImplicitParam注解常用参数。

• name:参数的名称。

• value:参数值。

• required:如果值为true,就是必传字段。

• defaultValue:参数的默认值。

• dataType:数据的类型。

演示

    @GetMapping("/test02")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "name",value = "测试姓名",required = false,defaultValue = "默认姓名李四"),
            @ApiImplicitParam(name = "age",value = "测试年龄",required = false,dataType = "Integer",defaultValue = "200")
    })
    public String test02(String name,Integer age){
        return "test02  姓名:"+name+"  年龄:"+age;
    }

2345_image_file_copy_506.jpg

2345_image_file_copy_507.jpg

2345_image_file_copy_508.jpg

ApiParam注解

      ApiParam用于方法的参数,其中包含以下几个常用属性。

• name:参数的名称。

• value:参数值。

• required:如果值为true,就是必传字段。

• defaultValue:参数的默认值。

• type:参数的类型。

• hidden:如果值为true,就隐藏这个参数。

与ApiImplicitParam、ApiImplicitParams注解类似,不再赘述。

ApiResponse、ApiResponses注解

      @ApiResponses和@ApiResponse二者配合使用返回HTTP状态码。@ApiResponses的value值是@ApiResponse的集合,多个@ApiResponse用逗号分隔。其中,@ApiResponse常用参数如下。

• code:HTTP状态码。

• message:HTTP状态信息。

• responseHeaders:HTTP响应头。

演示

@GetMapping("/test03")
    @ApiResponses(value = {
            @ApiResponse(code = 200,message = "成功"),
            @ApiResponse(code = 404,message = "异常")
    })
    public String test03(){
        return "test03";
    }

2345_image_file_copy_509.jpg

ResponseHeader注解

      如果需要设置响应头,就将@ResponseHeader设置到@ApiResponse的responseHeaders参数中。@ResponseHeader提供了以下几个参数。

• name:响应头名称。

• description:响应头描述。

ApiModel、ApiModelProperty注解

      设置API响应的实体类,用作API返回对象。@ApiModel常用参数。

• value:实体类名称。

• description:实体类描述。

      设置API响应实体的属性,其中常用参数。

• name:属性名称。

• value:属性值。

演示

@ApiModel(value = "Student(学生类)",description = "记录学生个人信息")
public class Student {
    public String name;
    @ApiModelProperty(name = "age",value = "年龄")
    public Integer age;
}

2345_image_file_copy_510.jpg

6.更多

本文总结粗略

更多详细使用参照swagger官网

官方网站:https://swagger.io/

官方文档:https://swagger.io/docs/

相关文章
|
4月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成
|
4月前
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
53 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
88 1
|
2月前
|
前端开发 Java Spring
【非降版本解决】高版本Spring boot Swagger 报错解决方案
【非降版本解决】高版本Spring boot Swagger 报错解决方案
|
2月前
|
Java Spring
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
|
3月前
|
Java API Spring
springboot集成swagger
这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。
|
4月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
|
3月前
|
Java
SpringBoot 配置 Swagger
SpringBoot 配置 Swagger
40 0
|
4月前
|
Java 测试技术 API

热门文章

最新文章