从0开始学习SpringCould(6)--SpringBoot 集成swagger2

来源:互联网 发布:linux安装smb服务 编辑:程序博客网 时间:2024/05/17 06:48

Swagger 是一个简单但功能强大的API表达工具。几乎所有的语言都可以找到与之对应的Swagger 版本。使用Swagger生成API,我们可以得到交互式文档。听过Spring Boot 与Swagger 的结合,生成更加完备的REST ful API 文档。通过在源码中添加部分内容,系统生成文档,大大提高工作效率,不用再花费大量时间来创建文档,同时由于同时是通过代码开生成文档,大大降低了维护成本
Swagger 不仅可以组织生成强大的 REST ful 文档,同时也提供了完备的测试功能,可以直接在文档页面测试接口功能。

本篇主要介绍Swagger在SpringBoot中的应用

本篇所用到的接口是上一篇 从0开始学习SpringCould(5)–SpringBoot 集成Mybatis使用Druid数据源 所创建的接口

一、maven依赖

<dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger2</artifactId>    <version>${swagger2.version}</version></dependency><dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger-ui</artifactId>    <version>${swagger2.version}</version></dependency>

版本信息:

<swagger2.version>2.7.0</swagger2.version>


二、编辑Swagger配置类

package com.example.springboot_demo.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;/** * @author zhoudong * swagger 配置类 */@Configuration@EnableSwagger2public class SwaggerConfig {    @Bean    public Docket api(){        return  new Docket(DocumentationType.SWAGGER_2).select()                .apis(RequestHandlerSelectors.basePackage("com.example.springboot_demo.controller"))                .paths(PathSelectors.any())                .build()                .apiInfo(apiInfo());    }    private ApiInfo apiInfo(){        return new ApiInfoBuilder()                .title("Spring Boot中使用Swagger2构建RESTful APIs")                .description("spring boot , swagger2")                .termsOfServiceUrl("http://blog.csdn.net/zdshare")                .version("1.0")                .build();    }}

@Configuration 告诉Springboot 这是一个配置类
@EnableSwagger2 表示,开启Swagger2

特别补充:
如果在配置文件中配置过
静态文件路径的,需要去掉,要不然不能打开swagger-ui.html

到此,最基本的一个SwaggerUI界面就已经开启,访问URL:http://localhost:9000/demo/swagger-ui.html
大概如图:
这里写图片描述


三、进一步配置

@PostMapping("/add")@ApiOperation(value="保存数据测试")public @ResponseBody Map<String,Object> add(@RequestBody Demo demo){    Map<String,Object> map = new HashMap<>();    log.info(" ** 接收到请求信息:{}", JSON.toJSONString(demo));    demo.setId(UUID.randomUUID().toString().replaceAll("-",""));    try {        demoService.insert(demo);        map.put("respCode","T");    }catch (Exception e){        map.put("respCode","T");        e.printStackTrace();    }    return map;}

@ApiOperation(value="保存数据测试") 描述当前接口

再次访问swagger-ui.html

这里写图片描述


更多参数,请自行测试

@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数


四、使用swagger-ui测试接口

1、请求按钮点击顺序如图

这里写图片描述


2、返回

这里写图片描述

可以查看到,返回结果及http code

查看数据库数据
这里写图片描述

没毛病 成功。

本篇结束,谢谢!

更多内容请关注微信公众号:

这里写图片描述