专栏首页米虫的家SpringBoot之API--Swagger2接口文档管理

SpringBoot之API--Swagger2接口文档管理

1、添加依赖

xml

      <!--Swagger2-->
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger2</artifactId>
	<version>2.2.2</version>
</dependency>
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger-ui</artifactId>
	<version>2.2.2</version>
</dependency>
2、创建Swagger2配置类,和application处于同一级

java

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;

/**
 * API接口文档配置
 *
 * @Author MiChong
 * @Email: 1564666023@qq.com
 * @Create 2018-03-29 16:32
 * @Version: V1.0
 */

@Configuration
@EnableSwagger2
public class Swagger2 {
    
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.buildworld.sbtest.web"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot中使用Swagger2构建RESTful APIs")
                .contact("MiChong")
                .version("1.0")
                .build();
    }

}

如上代码所示,通过@Configuration注解,让Spring来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2。 再通过createRestApi函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,本例采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)。

3、添加文档内容

在完成了上述配置后,其实已经可以生产文档内容,但是这样的文档主要针对请求本身,而描述主要来源于函数等命名产生,对用户并不友好,我们通常需要自己增加一些说明来丰富文档内容。如下所示,我们通过@ApiOperation注解来给API增加说明、通过@ApiImplicitParams、@ApiImplicitParam注解来给参数增加说明。

java

@Autowired
    private HseCustomerService hseCustomerService;

    @ApiOperation(value = "客户列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "fromId",value = "起始位置",required = false,dataType = "Integer"),
            @ApiImplicitParam(name = "limit",value = "每页显示条数",required = false,dataType = "Integer")
    })
    @GetMapping("list")
    public Object getList(@RequestParam(defaultValue = "0")Integer fromId,
                          @RequestParam(defaultValue = "2")Integer limit ){

        //初始化page插件,传入分页参数
        PageHelper.startPage(fromId,limit);
        List<HseCustomer> list = hseCustomerService.getList();

        //包装想要返回的结果,包含多种信息
        PageInfo pageInfo = new PageInfo(list);

        return pageInfo;
    }
4、最后显示效果

本地的访问地址: http://localhost:9091/swagger-ui.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • BigData--MapReduce进阶(二)之工作机制

    Bean对象实现WritableComparable几口,重写compareTo()方法

    MiChong
  • 前端模块化开发--React框架(三):应用进阶(react-router4&&antd框架)

    MiChong
  • JWT登录信息加密

    对于传统的单点登录系统,使用cookie和session的方式存储用户登录信息,但是对于安全性要求较高的企业–金融企业,就需要对用户的信息进行加密存储,防止客户...

    MiChong
  • 一段pdf转word的Java代码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • AI For Fragrance Design ,人工智能与香水设计

    最近MixLab在开展30天AI训练营,研究的是美食相关的AI应用,其中有一种应用方式是为特定的人群生成新的菜谱。思路可以参考IBM的研究:

    mixlab
  • AI 医疗三类证终于出了!科亚医疗“冠脉血流储备分数计算软件”获批上市

    雷锋网AI掘金志消息,近日,国家药品监督管理局经审查,批准了北京昆仑医云科技有限公司(科亚医疗)生产的创新产品“冠脉血流储备分数计算软件”的注册。这是首个以“深...

    AI掘金志
  • 探索C#之布隆过滤器(Bloom filter)

    蘑菇先生
  • 新一代互联网视频压缩AV1最新进展【2017.8】

    前几天,开放媒体联盟(AOM,Alliance for Open Media)举行了董事会议,对AV1编解码器的发布日期进行了讨论,Netflix和YouTub...

    用户1324186
  • Firefox 扩展开发 扩展学习 工具

    用户1258909
  • LGBT主题式的VR体验,让你感知同志们的辛酸苦楚

    VRPinea

扫码关注云+社区

领取腾讯云代金券