Swagger2是一个帮助用户、团队、企业快速、高效、准确地生产API服务的工具组件,同时还提供了部分测试功能,它的官方网站是https://swagger.io/

1.引入Maven

        <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.</version>
</dependency>

2.在应用启动类上添加注解@EnableSwagger2用以开启Swagger2

@SpringBootApplication
@EnableSwagger2
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
} }

实际上在执行完上面两个步骤后,接口就已经被暴露出来了,这时我们启动应用,进入网站http://ip:port/swagger-ui.html,可以看到如下界面

上图中已经暴露出来了四个不同的处理器,但是其中只有“user-controller”是由我们创建的,同时这些处理器和页面中没有任何的相关提示,让人难以理解每个接口分别对应的功能。下面我们再进行第三步,对暴露出来的接口再进行详细地描述。

3.添加API文档描述

定义文档的整体描述,和API文档的规范

@Configuration
public class SwaggerConf { @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) //Api信息
.select() //选择器
.apis(RequestHandlerSelectors.basePackage("com.springboot.demo.controller")) //只有在这个包和子包下的接口被生成API文档
.paths(PathSelectors.any()) //允许的路径,可以指定post
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger2 demo") //文档标题
.description("swagger2的测试用例") //文档说明
.contact(new Contact("yxf", "http://yxf.com", "5@qq.com")) //文档提供者的联系方式
.version("1.0") //版本号
.build();
} }

再根据每个接口定义各自的相关描述

    /**
* 1.@ApiOperation 描述Api的操作,包括请求名(value)和请求描述(notes)
* 2.@ApiImplicitParams 多个请求参数,里面以数组形式存储了单个的请求参数
* 3.@ApiImplicitParam 单个请求参数,name参数名,value参数描述,required必要性(针对部分参数可以为空的情况),
* example样例格式(默认是“String”,0,true等)
* @param id
* @return
*/
@ApiOperation(value = "删除角色", notes = "根据ID删除角色。")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "角色ID", required = true, example = "")
})
@DeleteMapping(value = "role/")
public String removeRole(long id) {
System.out.println("删除角色");
return "删除成功" + id;
}

如上编写后,重启应用再进入上面的方法路径“/role/”查看:

点击“try it out”

执行后下方会出现操作的相关信息:

swagger暴露程序接口文档的更多相关文章

  1. spring boot使用swagger生成api接口文档

    前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...

  2. Asp.Net Core 轻松学-利用 Swagger 自动生成接口文档

    前言     目前市场上主流的开发模式,几乎清一色的前后端分离方式,作为服务端开发人员,我们有义务提供给各个客户端良好的开发文档,以方便对接,减少沟通时间,提高开发效率:对于开发人员来说,编写接口文档 ...

  3. .NET Core WEB API使用Swagger生成在线接口文档

    1项目引用Swashbuckle.AspNetCore程序集和Microsoft.Extensions.PlatformAbstractions程序集 右击项目打开"管理NuGet程序包.. ...

  4. Asp.Net Core 轻松学系列-5利用 Swagger 自动生成接口文档

    目录 前言 结语 源码下载 前言     目前市场上主流的开发模式,几乎清一色的前后端分离方式,作为服务端开发人员,我们有义务提供给各个客户端良好的开发文档,以方便对接,减少沟通时间,提高开发效率:对 ...

  5. .net core 使用swagger自动生成接口文档

     前言 swagger是一个api文档自动生动工具,还集成了在线调试. 可以为项目自动生成接口文档, 非常的方便快捷 Swashbuckle.AspNetCore 是一个开源项目,用于生成 ASP.N ...

  6. 使用Swagger生成简单接口文档

    使用swagger通过简单的配置可以生成简单的接口文档: 依赖包: // Swagger2 compile 'io.springfox:springfox-swagger2:2.8.0' compil ...

  7. 「快学springboot」16.让swagger帮忙写接口文档

    swagger简介 官方的介绍 THE WORLD'S MOST POPULAR API TOOLING Swagger is the world's largest framework of API ...

  8. .NET Core使用swagger进行API接口文档管理

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...

  9. Swagger: 一个restful接口文档在线生成+功能测试软件

    一.什么是 Swagger? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 ...

随机推荐

  1. window 下mongodb 配置

    1.下载mongodb-win32-x86_64-2008plus-ssl-v3.6-latest 解压到 D:\mongodb 2.cmd => path是否有环境变量 如果没有请配置 3.创 ...

  2. Joomla - K2组件(文章管理扩展)

    一.下载 K2 进入 https://getk2.org/ ,点击DOWNLOAD K2 下载K2 下载完毕得到一个安装包 二.安装 K2 进入看后台,点击顶栏主菜单 扩展管理 -> 扩展安装 ...

  3. JS对象迭代v-for

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  4. 03_Hibernate关系映射

    关系映射? Hibernate的主要目的就是JAVA程序员可以随心所欲的使用对象编程思维来操作数据库.一些数据库表的关系我们应该可以通过hibernate实现,比如数据库中用到的主外键关系,还有一些与 ...

  5. 计算机程序是怎么通过cpu,内存,硬盘运行起来的?

    虽然以前知道计算机里有CPU,内存,硬盘,显卡这么些东西,我还真不知道这些东西是怎么协作起来完成一段程序的,能写出程序却不懂程序,也不会向别人解释他们的关系,所以特意总结了一下,写的比较浅显,和我一样 ...

  6. 矩阵快速幂2 3*n铺方格

    #include <iostream> #include <cstdlib> #include <cstring> #include <queue> # ...

  7. [群晖] DSM6.2用winscp通过root权限登录

    http://www.nas1.cn/thread-86048-1-1.html 以前DSM6.0的时候可以通过改root密码的方式,来通过winscp来登录nas,这样可以获得最高权限可以任意修改文 ...

  8. 爬虫(三)通过Selenium + Headless Chrome爬取动态网页

    一.Selenium Selenium是一个用于Web应用程序测试的工具,它可以在各种浏览器中运行,包括Chrome,Safari,Firefox 等主流界面式浏览器. 我们可以直接用pip inst ...

  9. 11.5 临近csp·道别

    差不多到写这个东西的时候了? 嗯,按今天的日期来算的话,还有不到十天就是csp.感觉对我这种家伙来说应该算是终结了? 放在之前的话肯定会写很多东西的,不过现在大约有点不知道写什么比较合适. 所以只是祝 ...

  10. Hibernate-实体-对象状态-一级缓存-事务-查询

    一 hibernate中的实体规则 1.1 实体类创建的注意事项 持久化类提供无参数构造         --在调用instance()方法时默认调用空参构造 成员变量私有,提供共有get/set方法 ...