SpringBoot项目中整合Swagger2

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路SpringBoot项目中整合Swagger2,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

介绍

用在前后端分离的项目中,自动生成接口文档。
官网: https://swagger.io/

整和步骤

引入依赖

SpringBoot项目中引入Swagger 的依赖:

<!--依赖管理 -->
    <dependencies>
    	<!--添加Web依赖 -->
        <dependency> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!--添加Swagger依赖 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <!--添加Swagger-UI依赖 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
        
        <!--添加热部署依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <!--添加Test依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

添加配置类

即编写swagger启动类SwaggerConfig.java
下面代码中的package、title、version,都可以自己更改。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
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 customDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.xx.controller"))
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API列表")
                .version("1.0.0")
                .build();
    }
}

激活Swagger

1,修改添加application.properties文件

#是否激活 swagger true or false
swagger.enable=true

2, 或者 修改添加application-dev.yml文件

swagger:
  enable: true

编写接口文档

即开启spring整合swagger配置

Swagger2 基本使用:

注解 作用
@Api 描述类/接口的主要用途,表示标识这个类是swagger的资源
@ApiOperation 描述方法用途,表示一个http请求的操作
@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
@ApiModel() 用于类,表示对类进行说明,用于参数用实体类接收
@ApiModelProperty() 用于方法,字段,表示对model属性的说明或者数据操作更改
@ApiImplicitParam 描述方法的参数,表示对参数的添加元数据(说明或是否必填等),表示单独的请求参数
@ApiImplicitParams 描述方法的参数(Multi-Params),用于方法,包含多个 @ApiImplicitParam
@ApiIgnore 用于类,方法,方法参数,表示这个方法或者类被忽略
@ApiResponse 返回参数

注解说明

具体使用

@Api()
用于类;

参数:
tags:表示说明,tags如果有多个值,会生成多个list
value:用于类描述
hidde:无效果
description:已废用,接口说明

@ApiOperation()
用于方法;

参数:
value:用于方法描述
notes:用于提示内容 
tags:可以重新分组(视情况而用)

@ApiImplicitParam()
用于方法
表示单独的请求参数

@ApiImplicitParams()
用于方法,包含多个 @ApiImplicitParam

参数:
name:参数名
value:参数说明
dataType:数据类型
paramType:参数类型

@ApiResponse

返回参数说明
response:返回的对象信息
code:返回的状态信息
message:返回的文本信息

@ApiModel
用于类 ;表示对类进行说明,用于参数用实体类接收
value–表示对象名
description–描述
都可省略

@ApiModelProperty

对象字段说明
value:字段名称
example: 字段说明

@ApiIgnore()
用于类或者方法上,可以不被swagger显示在页面上

Swagger2 使用注解来编写文档:
Swagger2编写接口文档相当简单,只需要在控制层(Controller)添加注解来描述接口信息即可。

例子如下:

@RestController
@RequestMapping("/api/user")
@Api("登录功能")
public class LoginController {

    @RequestMapping("/login")
    @ApiOperation("用户名和密码登录")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "username", value = "用户名", defaultValue = "李四", required = true),
            @ApiImplicitParam(name = "password", value = "密码", defaultValue = "123456", required = true)
    })
    public ResultObject login(String username, String password) {
    ...

查阅接口文档

编写文档完成之后,启动当前项目,在浏览器打开:http://localhost:8080/swagger-ui.html
(端口根据自己设置来写)

测试接口

Swagger2的强大之处不仅在于快速生成整洁优雅的RestAPI文档,同时支持接口方法的测试操作(类似于客户端PostMan)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155709.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!