资讯专栏INFORMATION COLUMN

Spring Boot中使用Swagger2构建API文档

taohonghui / 1427人阅读

摘要:使用生成,我们可以得到交互式文档,自动生成代码的以及的发现特性等。方法指定扫描的包会生成文档默认是显示所有接口可以用注解标识该接口不显示。

程序员都很希望别人能写技术文档,自己却很不愿意写文档。因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码,接口调用方的抱怨声不绝于耳。而程序员是最擅长"偷懒"的职业了,自然会有多种多样的自动生成文档的插件.今天要介绍的就是Swagger.

接下来我们在Spring Boot中使用Swagger2构建API文档

Swagger是一个简单但功能强大的API表达工具。它具有地球上最大的API工具生态系统,数以千计的开发人员,使用几乎所有的现代编程语言,都在支持和使用Swagger。使用Swagger生成API,我们可以得到交互式文档,自动生成代码的SDK以及API的发现特性等。

我们先来看看具体效果:

可以看到Swagger-Ui是以controller分类,点击一个controller可以看到其中的具体接口,再点击接口就可以看到接口的信息了,如图:

我们可以看到该接口的请求方式,返回数据信息和需要传递的参数.而且以上数据是自动生成的,即使代码有一些修改,Swagger文档也会自动同步修改.非常的方便.

构建RESTful API

在使用Swagger2前我们需要有一个RESTful API的项目. Spring-Boot创建RESTful API项目非常的方便和快速,这里不再介绍如何创建,需要的可以参照项目代码

添加Swagger2依赖

在pom.xml文件中加入以下依赖.

        
            io.springfox
        springfox-swagger2
        2.7.0
        
        
            io.springfox
            springfox-swagger-ui
            2.7.0
        

创建Swagger2的Java配置类

通过@Configuration注解,表明它是一个配置类,@EnableSwagger2 注解开启swagger2。apiInfo() 方法配置一些基本的信息。createRestApi() 方法指定扫描的包会生成文档,默认是显示所有接口,可以用@ApiIgnore注解标识该接口不显示。

/**
 * Created by Yuicon on 2017/5/20.
 * https://github.com/Yuicon
 */
@Configuration
@EnableSwagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 指定controller存放的目录路径
                .apis(RequestHandlerSelectors.basePackage("com.digag.web"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                 // 文档标题
                .title("DigAg")
                // 文档描述
                .description("https://github.com/Yuicon")
                .termsOfServiceUrl("https://github.com/Yuicon")
                .version("v1")
                .build();
    }

}

编辑文档接口信息

先看一个例子:

    @ApiOperation(value="创建条目")
    @RequestMapping(method = RequestMethod.POST)
    public JsonResult saveEntry(@RequestBody @ApiParam(value = "条目对象", required = true) Entry entry, HttpServletRequest request) {
        return entryService.create(entry, request);
    }

Swagger2提供了一些注解来丰富接口的信息,常用的有:

@ApiOperation:用在方法上,说明方法的作用

value: 表示接口名称

notes: 表示接口详细描述

@ApiImplicitParams:用在方法上包含一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

paramType:参数位置

header 对应注解:@RequestHeader

query 对应注解:@RequestParam

path 对应注解: @PathVariable

body 对应注解: @RequestBody

name:参数名

dataType:参数类型

required:参数是否必须传

value:参数的描述

defaultValue:参数的默认值

@ApiResponses:用于表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

code:状态码

message:返回自定义信息

response:抛出异常的类

访问文档

swagger2文档的默认地址是 /swagger-ui.html, 本地开发的访问 http://localhost:8080/swagger-ui.html就可以看到自动生成的文档了.

完整结果示例可查看项目代码

参考信息

Swagger注解文档
Swagger官方网站

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67573.html

相关文章

  • SpringBoot 实战 (五) | 集成 Swagger2 构建强大的 RESTful API

    摘要:今天给你们带来集成的教程。接口返回结果不明确。这些痛点在前后端分离的大型项目上显得尤为烦躁。接口返回结果非常明确,包括数据类型,状态码,错误信息等。生成后的文件依赖如下这里使用的是的版本。另外,关注之后在发送可领取免费学习资料。 微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 快过年了,不知道你们啥时候放年假,忙不忙。反正我是挺闲的,所以有时间写 b...

    Rindia 评论0 收藏0
  • Java | Spring Boot Swagger2 集成REST ful API 生成接口文档

    摘要:集成生成接口文档原文简介由于的特性,用来开发变得非常容易,并且结合来自动生成文档变得方便快捷。使用生成,我们可以得到交互式文档。听过与的结合,生成更加完备的文档。接下来将基于与搭建完整的文档系统。 Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Sw...

    joyvw 评论0 收藏0
  • Spring Boot集成Swagger2

    摘要:前言目前互联网开发市场都流行前后台真正的分离,后台提供数据接口,前台负责请求数据并渲染。今天就介绍一款将接口文档编写和测试合并一起的集大成者,也是目前很多企业再用的一个管理工具。 前言:目前互联网开发市场都流行前后台真正的分离,后台提供数据API接口,前台负责请求数据并渲染。那么我们程序猿们在编写接口的时候,最不方便之处就是写完接口后需要进行文档的编写以及接口的测试。今天就介绍一款将接...

    liukai90 评论0 收藏0

发表评论

0条评论

taohonghui

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<