Spring Boot 框架是目前非常流行的微服务框架,我们很多情况下使用它来提供 Rest API,而对于 Rest API 来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证 API 文档的及时性将有很大的帮助。本文将使用 Swagger 2 规范的 Springfox 实现来了解如何在 Spring Boot 项目中使用 Swagger,主要包含了如何使用 Swagger 自动生成文档,可以在交互页面测试接口,但是我真没有觉得好用,但是现在都在说,所以集成了一下.

pom.xml中添加依赖

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

添加一个配置类

@Configuration
@EnableSwagger2
public class Swagger2Config extends WebMvcConfigurationSupport{@Beanpublic Docket api() {//添加head参数startParameterBuilder tokenPar = new ParameterBuilder();List<Parameter> pars = new ArrayList<Parameter>();tokenPar.name("Authorization").description("登录token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();pars.add(tokenPar.build());//添加head参数endreturn new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()// 自行修改为自己的包路径.apis(RequestHandlerSelectors.basePackage("com.jovision.sfwl")).paths(PathSelectors.any()).build().globalOperationParameters(pars);}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("swagger-api文档").description("swagger接入").version("1.0").build();}
// 静态资源放开 否则404@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
}

上面静态资源也可以用yml/properties配置也可以

spring:resources:static-locations: classpath:templates/,classpath:static/,classpath:META-INF

这样 swagger就集成完了,接下来是使用,已经扫描到了所有的控制器,那么只需要在控制器的每个请求上加注解就可以了

/*** @Description 区域-点位树状查询* @Author 寂寞旅行* @Date 11:07 2020/8/19* @Param [entity]* @return com.jovision.sfwl.common.utils.JsonResult**/@RequestMapping("/areaPointTreeList")@ApiOperation(value="获取点位树状查询列表", notes="区域点位树")@ApiImplicitParam(name = "", value = "空", required = true, dataType = "String")public JsonResult areaPointTreeList() {return deviceAreaPointService.areaPointTreeList();}

看下效果
访问本地项目+端口+swagger-ui.html 完整路径为http://localhost:9031/swagger-ui.html

image.png

找到刚刚加了注解的控制器的方法

此为改接口加了 文字描述的样子,且红框处,可以直接测试该接口

错误记录:

当出现页面swagger上提示入参无法解析出来,无法显示具体的标注的注释的时候,应该是模型注解上的内容中有 斜杠 / 导致的;将这个斜杠 去掉就好了;

没错,把这个斜杠 / 删除了 就好了

2020-09-11 使用swagger文档相关推荐

  1. 使用 Swagger 文档化和定义 RESTful API

    大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API--REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...

  2. idea快速生成crud_Java / Spring:如何快速生成完整的Swagger文档CRUD REST API

    idea快速生成crud 作为开发人员,我们在日常生活中经常面临的最繁琐的任务之一就是编写良好且易于理解的文档. 无论我们的文档只有几行来解释功能的核心功能,还是表明系统的来龙去脉的成熟文章都没关系. ...

  3. net core 3.1 swagger文档添加 不用xml配置

    使用特性来描述接口而不是xml文件,使用特性可自定义接口在swaggerUI上的描述 安装nuget包:Swashbuckle.AspNetCore.SwaggerUI和Swashbuckle.Asp ...

  4. java计算机毕业设计三坑购物平台演示录像2020源代码+数据库+系统+lw文档

    java计算机毕业设计三坑购物平台演示录像2020源代码+数据库+系统+lw文档 java计算机毕业设计三坑购物平台演示录像2020源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 ...

  5. swagger 扫描java文档_使用Javadocs生成Swagger文档

    我想为现有的一组RESTful API构建Swagger文档.我有以下要求: 读取现有的Javadoc,以便可以在Swagger文档中使用它们. 到目前为止使用上面的插件我能够实现第1点.所以对于现有 ...

  6. swagger文档配置

    swagger文档在springboot项目中使用已经非常广泛,作为api接口管理工具 使用起来也很简单,只需要简单配置一下,就可以生成文档管理页面,在页面上管理查看api接口文档,以及进行接口调试等 ...

  7. swagger文档增强工具knife4j使用详解

    本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:swagger文档增强工具knife4j使用详解 使用原生的swagger作为接口文档,功能不够强大,并且默认的ui比较简陋,不符合大众审美.所 ...

  8. 设置swagger文档自动同步到YApi

    SpringBoot项目引入swagger文档后,每次都要手工维护接口到YApi很麻烦,有没有设置自动化同步的办法?操作如下: 进入YApi后添加项目 添加完项目后,点击设置,配置基本项目信息,由于我 ...

  9. Django Swagger文档库drf-spectacular

    在使用DRF的时候,通常的文档有:默认文档RestFrameWork.CoreAPI.Swagger,Swagger是最流行的API文档库,在绝大多数服务端开发中都有用到,之前我们使用了CoreAPI ...

  10. Swagger 文档中文版,国产API 文档工具使用教程

    swagger文档.swagger ui 在后端开发中使用非常广泛,接口文档开发和代码生成等功能非常好用. 但swagger是付费的产品,而免费版的swagger 文档需要自己去配置,流程非常复杂,因 ...

最新文章

  1. tableau实战系列(四十七)-Tableau快速生成可视化视图
  2. 【NLP】如何提升BERT在下游任务中的性能
  3. vue elementui el-select通过@Change触发事件
  4. Python3.6 IDLE 使用 multiprocessing.Process 不显示执行函数的打印
  5. maven本地库已经有的包了,如何不下载(linux环境)
  6. C++ boost锁的概述
  7. 图形推理1000题pdf_这7道幼儿园数学思维题,能答对一半智商肯定不低
  8. hua图软件 mac_CAD迷你画图for Mac-CAD迷你画图Mac版下载 V3.3.6-PC6苹果网
  9. du-查看文件夹大小-并按大小进行排序
  10. 40岁计算机研究生能干什么工作,快四十岁了,还能干点什么?
  11. MMdetection2测试voc数据获取precision
  12. centos6和centos7的主要区别和版本选择
  13. python是动态语言图片_利用python图片生成,需10几行代码,生成的动态表情包(小黄鸭)...
  14. wcdma系统随机接入过程的流程图_一种随机接入方法与流程
  15. TR-069协议简介
  16. CANoe.DiVa 操作指南 - 逆向测试项设置
  17. 微型计算机中i 0设备的含义,i/0设备的含义是什么
  18. AtCoder ABC161 E - Yutori
  19. 豆瓣(douban.com)和Python、Quixote的文章合集
  20. IAR MSP430头文件中的一些解释

热门文章

  1. STM32固件升级详解(BootLoader)
  2. 微信小程序开发之麦克风动画 帧动画 放大 淡出
  3. android app开发混合开发,混合开发入门 Vue结合Android/iOS开发仿京东项目App
  4. C++学习笔记 - 阶段三:C++核心编程 - Chapter7:类和对象-C++运算符重载
  5. Hybrid APP 混合开发模式的选择之路(三)
  6. 下载图片,文档,excel导入导出
  7. 重庆自考专升本和普通专升本的区别?
  8. redhat 5.5 开启telnet 及解决防火墙、乱码问题
  9. python小猴子摘桃子的故事_小猴子摘桃_小猴子摘桃故事-经典童话-查字典故事会...
  10. Spring JdbcTemplate 无效的列索引错误