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. LUOGU P3382 【模板】三分法 (三分)

    传送门 解题思路 三分,填坑.每次取l与r的中间值mid,然后向左移一点点,向右移一点点进行判断,判断时用秦九韶算法即可. #include<iostream> #include<c ...

  2. springboot与安全

    概念: 安全 Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型.他可以实现强大的web安全控制.对于安全控制,我们仅需引入sprin ...

  3. 牛人blog 头脑风暴 (持续添加与更新)

    Http协议详解 http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html android 实现分享功能两种方法 http://w ...

  4. JS对象迭代v-for

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

  5. 转载:Jsoup常用方法功能介绍(html解析器)

    jsoup 的作用:是一款 Java 的HTML 解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据 ...

  6. NIO的学习总结

    1.简单画的NIO流程图 2.代码实现编程: Client: package nio; import java.io.IOException; import java.net.InetSocketAd ...

  7. 关于dictionary和tuple充当函数参数

    需要接收dict时,使用 **name: 需要接收tuple时,使用 *name: --> *name参数后面的任何数据会被认为是’keyword-only’,即它们只能被当作关键词而非参数使用 ...

  8. str_replace函数的使用规则和案例详解

    str_replace函数的使用规则和案例详解 str_replace函数的简单调用: <?php $str = '苹果很好吃.'; //请将变量$str中的苹果替换成香蕉 $strg = st ...

  9. Inoic 滚动条问题

    1.看图说话 2.没有超过一个页,怎样去掉图中的滚动条? 3修改后预览效果

  10. Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...