关键词:
现在Web项目前后端分离越来越多,前后端的沟通成本成了头大的难题。
上个项目虽然使用Postman已经降低了不少沟通成本,但是还是要手写不少Api到Postman测试,耗费了不少时间。这次新项目决定使用SpringBoot来做,各方面都节省了不少配置,一想到Api的对接就有点头大,于是决定把Swagger集成进来,实现Api文档的自动生成(通过http://localhost:8080/swagger-ui.html直接访问),这样前后端对接基本上就零成本了。
话不多说,搞起。
首先,pom引入swagger的依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
然后在Springboot的Appilication类同目录下新建Swagger2.java。
Swagger2:
@Configuration public class Swagger2 { //swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等 @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //为当前包路径 .apis(RequestHandlerSelectors.basePackage("com.deepinno.dojet.ims.jy.web")) .paths(PathSelectors.any()) .build(); } //构建 api文档的详细信息函数,注意这里的注解引用的是哪个 private ApiInfo apiInfo() { return new ApiInfoBuilder() //页面标题 .title("潇湘夜雨RESTful API") //创建人 .contact(new Contact("潇湘夜雨", "https://crazycrabs.top", "[email protected]")) //版本号 .version("1.0") //描述 .description("潇湘夜雨API测试") .build(); } }
此时已经可以访问http://localhost:8080/swagger-ui.html。
写一个Controller来测试Swagger:
package com.deepinno.dojet.ims.jy.web; import com.deepinno.dojet.ims.jy.model.user.UserInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/swagger") @Api(value="/swagger", tags="测试接口模块") public class TestController { @ApiOperation(value="展示首页信息value", notes = "展示首页信息notes") @GetMapping("/show") public Object showInfo(){ return "hello world"; } @ApiOperation(value="添加用户信息", notes = "添加用户信息") @ApiImplicitParam(name="userInfo", value="UserInfo", required = true, dataType = "UserInfo") @PostMapping("/addUser") public Object addUser(@RequestBody UserInfo userInfo){ return "success"; } }
访问Swagger的UI,可以看到已经生成了相应的API接口:
至此完成了对Swagger的集成,更多功能只需对照文档即可实现。
可能会出现的问题处理:
如果项目已经配置了Shiro,访问会被Shiro拦截,修改Shiro的过滤器即可解决:
filterChainDefinitionMap.put("/swagger-ui.html", "anon"); filterChainDefinitionMap.put("/webjars/**", "anon"); filterChainDefinitionMap.put("/v2/**", "anon"); filterChainDefinitionMap.put("/swagger-resources/**", "anon");
如果访问Swagger UI显示404。可能是配置了自定义的WebMvcConfiguration(比如为了配置fastjson转换器),继承了WebMvcConfigurationSupport,而继承WebMvcConfigurationSupport的情况下,Springboot的默认静态资源过滤器就失效了,于是需要配置一下过滤器:
/** * 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。 * 需要重新指定静态资源 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); super.addResourceHandlers(registry); } /** * 配置servlet处理 */ @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); }
这样即可正常访问Swagger的UI。
springboot学习——springboot快速整合swagger文档
@[toc]简介优点后端根据swagger语法,自动生成漂亮规范的接口文档。做交互测试。劣势侵入式的,影响程序运行,尤其是传参的时候。注意swagger分1.2版本和2.0版本,差异较大。swagger1.2即swagger-ui;swagger2.0即springfox-swagger。本文介... 查看详情
springboot整合swagger
Swagger使用Swagger有什么用?swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPISpecification,OAS)为基础, 对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,... 查看详情
springboot整合swagger-ui快速生成在线api文档
目录SpringBoot整合Swagger-ui实现在线API文档本篇要点一、restful风格简单介绍二、SpringBoot与Swagger-ui快速整合1、第一种方式:使用官方依赖2、第二种方式:使用第三方依赖三、swagger-ui的基本注解源码下载参考阅读SpringBoot整合Swagger-u... 查看详情
swaggerlearing-springboot整合swagger
学习了一下swagger。这是编写的Demo源码https://github.com/AmberBar/Learning/tree/master/swagger-learning/swagger需要的小伙伴可以clone直接运行访问地址http://localhost:9999/swagger-ui.html#/ 查看详情
在springboot中整合jersey和springfox-swagger2
前言为了实现RESTfulWebservice和接口说明,基于springboot平台,使用jersey作为JAX-RS的实现,采用swagger文档在线生成工具。提要在实现了springboot集成jersey的swagger文档功能,同时满足SpringMVC整合swagger提供RESTful文档功能。Springboot 集... 查看详情
swagger和springboot整合
Swagger号称全世界最流行的api框架;RestFulApi文档在线自动生成工具=>Api文档与API定义同步更新配置<!--https://mvnrepository.com/artifact/io.springfox/springfox-swagger2--><dependency> <groupId>io.springfox</g 查看详情
springboot和swagger整合
本文来源:https://blog.csdn.net/saytime/article/details/74937664一、依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version& 查看详情
springboot整合swagger-ui
SpringBoot整合Swagger-ui引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency>< 查看详情
springboot整合swagger2
一关于SwaggerSwagger能成为最受欢迎的RESTAPIs文档生成工具之一,有以下几个原因:Swagger可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。Swagger可以生成客户端SDK代码用于各种不同的平台上的实现。Swagger... 查看详情
springboot整合swagger
...Api到Postman测试,耗费了不少时间。这次新项目决定使用SpringBoot来做,各方面都节省了不少配置,一想到Api的对接就有点头大,于是决定把Swagger集成进来,实现Api文档的自动生成(通过http://localhost:8080/swagge 查看详情
springboot整合swagger2
手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。接口返回结果不明确不能直接在线测试接口,通常需要使用工具,比如postman接口文档太多,不好管理 Swagger也就是... 查看详情
springboot整合swagger测试api构建
@Author:SimpleWu什么是Swagger?Swagger是什么:THEWORLD’SMOSTPOPULARAPITOOLING根据官网的介绍:SwaggerInspector:测试API和生成OpenAPI的开发工具。SwaggerInspector的建立是为了解决开发者的三个主要目标。执行简单的API测试生成OpenAPI文档探索新... 查看详情
springboot整合swagger2搭建api在线文档
...阅和测试功能。利用Swagger2很容易构建RESTful风格的API,在SpringBoot中集成Swagger2,步骤如下。1.引入依赖<!--Swagger2--><dependency><groupId> 查看详情
springboot整合swagger框架
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许API来始终保... 查看详情
springboot2整合swagger2-plus
目录一.整合swagger21.加依赖2.写配置3.常用注解:4.演示demo5.实际效果查询新增登录二.整合swagger2-plus1.加依赖2.写配置3.实际应用4.最终效果新增登录一.整合swagger21.加依赖<!--引入swagger2--><dependency><groupId>io.springfox</gr... 查看详情
springboot整合swagger常见问题一
项目启动完,访问swagger-ui页面访问不到,这里可以给他指定一下,创建一个实体类即可@SuppressWarnings("deprecation")@Configurationpublic class WebMVCConfig extends WebMvcConfigurerAdapter { &nb 查看详情
springboot整合swagger2框架
一:什么是SwaggerSwagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务。二:添加Swagger2依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><ve 查看详情
springboot整合swagger2
SpringBoot整合Swagger2相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需... 查看详情