Springboot整合Swagger(二)

1、创建Springboot项目
2、引入swagger依赖

        <!--SpringBoot-starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!--swagger-UI页面-前后端分离中很好用-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

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

swagger-UI:是swagger提供的接口UI界面
swagger2:提供对应的注解,在项目中书写接口时,加上相应的注解,会自动生成接口UI界面

3、创建SwaggerConfig.java配置文件---配置swagger

package com.gao.swagger.config;

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 //开启swagger2,若启动类上添加了该注解,则配置类可以不添加
public class SwaggerConfig {

    /*创建swagger bean*/
    @Bean
    public Docket createRestApi() {
        /*
        * Docket是swagger全局配置对象
        * DocumentationType:指定文档类型为swagger2
        */
        return new Docket(DocumentationType.SWAGGER_2)
                // swagger信息
                .apiInfo(apiInfo())

                /*  配置是否开启swagger
                 * 是否开启 (true 开启  false隐藏。生产环境建议隐藏)
                 * 若为false,则浏览器不能访问
                 */
                .enable(true)

                /*
                * swagger 扫描包配置
                * select()获取Docket中的选择器,返回ApiSelectorBuilder构造选择器,如扫描扫描包的注解
                */
                .select()

                /* 指定扫描器扫描的规则(断言)
                * 扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
                *
                * requestHandlerSelectors:请求处理选择器
                * basePackage():扫描指定包下的所有接口
                * any():扫描所有的包
                * none():不扫描
                * withClassAnnotation():扫描指定类上的注解,参数是
                * withMethodAnnotation():扫描方法上的注解
                */
                .apis(RequestHandlerSelectors.basePackage("com.gao.swagger.controller"))

                /* --指定路径处理
                 * pathSelectors:路径选择器,过滤路径
                 * ang():选择所有路径
                 * none():都不选择
                 * ant():选择指定路径
                 * regex():正则表达式
                 */
                .paths(PathSelectors.any())
                .build();


    }

    // swagger文档信息
    private ApiInfo apiInfo() {

        // 作者信息
        Contact contact = new Contact(
                // 文档发布者的名称
                "gao",
                // 文档发布者的网站地址
                "https://XXX.XXXX.XXX",
                // 文档发布者的电子邮箱
                "XXXXXXXXX@163.com"
        );

        return new ApiInfoBuilder()
                //设置文档标题(API名称)
                .title("SpringBoot中使用Swagger2接口规范")
                //文档描述
                .description("接口文档说明")
                //服务条款URL
                .termsOfServiceUrl("http://localhost:8080/")
                //版本号
                .version("1.0.0")

                .build();
    }

}

4、启动项目,打开浏览器访问 UI界面

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

5、书写测试接口

package com.gao.swagger.controller;


import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("userController")
@Api(value = "测试接口", tags = "用户管理相关的接口", description = "用户测试接口")
public class UserController {
    /**
     * 保存数据
     * @param 
     * @return
     */
    @PostMapping(value = "/save")
    //方法参数说明,name参数名;value参数说明,备注;dataType参数类型;required 是否必传;defaultValue 默认值
    @ApiImplicitParam(name = "user", value = "新增用户数据")
    //说明是什么方法(可以理解为方法注释)
    @ApiOperation(value = "添加用户", notes = "添加用户")
    public String saveUser(){
        return "保存成功";
    }

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    @GetMapping(value = "/findById")
    @ApiOperation(value = "根据id获取用户信息", notes = "根据id查询用户信息")
    public String getUser(Integer id){
        return "获取成功";
    }

    /**
     * 删除
     * @param 
     * @return
     */
    @DeleteMapping(value = "/deleteById")
    @ApiOperation(value = "根据id删除数据", notes = "删除用户")
    public String delete(){
        return "删除成功";
    }



}

6、启动项目,并在浏览器输入http://localhost:8080/swagger-ui.html进行swagger-ui界面访问

 7、调试测试接口

  以/userController/findById 为案例

 输入请求相关参数

 点击执行后,响应结果如下

 

 

 
posted @ 2022-11-21 00:21  向大海  阅读(112)  评论(0编辑  收藏  举报