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、下一篇常用注解

 

原文地址:http://www.cnblogs.com/Life-QX/p/16910127.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性