springboot详解整合swagger方案
1、Swagger简介
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
官网: ( https://swagger.io/ )
主要作用是:
1. 使得前后端分离开发更加方便,有利于团队协作
2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担
3. 功能测试
Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫 Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。
2、整合步骤
项目整体架构如下:
首先构建一个maven项目,添加依赖,我本项目只是一个子模块,所以相应的版本都是依赖于父版本的,看不到版本号,swagger使用的是2.9.2版本
<dependencies> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> </dependencies>
创建Swagger配置类SwaggerConfig
package com.swagger.config; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration @ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true") public class SwaggerConfig implements WebMvcConfigurer { @Bean public Docket buildDocket() { // 要扫描的API(Controller)基础包 return new Docket(DocumentationType.SWAGGER_2) .apiInfo(buildApiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.swagger.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo buildApiInfo() { Contact contact = new Contact("开发者", "", ""); return new ApiInfoBuilder() .title("测试‐应用API文档") .description("") .contact(contact) .version("1.0.0") .build(); } /*** 添加静态资源文件,外部可以直接访问地址 ** @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/"); } }
在Controller层创建SwaggerController类方便测试,并添加swagger相应注解
package com.swagger.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @Api(value = "测试平台 ",tags = "测试平台") @RestController public class SwaggerController { @ApiOperation("测试") @GetMapping(path = "/hello") public String hello(){ return "hello"; } @ApiOperation("测试2") @ApiImplicitParam(name = "name",value = "姓名",required = true,dataType = "string") @GetMapping("/hi") public String hi(String name){ return "hi : "+name; } }
常用Swagger注解如下:
- @Api:修饰整个类,描述Controller的作用 @ApiOperation:描述一个类的一个方法,或者说一个接口
- @ApiParam:单个参数的描述信息
- @ApiModel:用对象来接收参数
- @ApiModelProperty:用对象接收参数时,描述对象的一个字段
- @ApiResponse:HTTP响应其中1个描述
- @ApiResponses:HTTP响应整体描述
- @ApiIgnore:使用该注解忽略这个API
- @ApiError :发生错误返回的信息
- @ApiImplicitParam:一个请求参数
- @ApiImplicitParams:多个请求参数的描述信息
创建启动类SwaggerApplication
package com.swagger; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableSwagger2 //开启swagger public class SwaggerApplication { public static void main(String[] args) { SpringApplication.run(SwaggerApplication.class,args); } }
启动SwaggerApplication ,访问http://localhost:8080/swagger-ui.html
即可以查看接口文档了......
路漫漫其修远兮,吾将上下而求索,希望此篇文章对大家有所帮助......
到此这篇关于springboot详解整合swagger方案的文章就介绍到这了,更多相关springboot swagger内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一分钟入门Java Spring Boot彻底解决SSM配置问题
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者2021-10-10基于HttpServletRequest 相关常用方法的应用
本篇文章小编为大家介绍,基于HttpServletRequest 相关常用方法的应用,需要的朋友参考下2013-04-04SpringCloud @RefreshScope刷新机制浅析
RefeshScope这个注解想必大家都用过,在微服务配置中心的场景下经常出现,他可以用来刷新Bean中的属性配置,那大家对他的实现原理了解吗?它为什么可以做到动态刷新呢2023-03-03SpringBoot整合MyBatis Plus实现基本CRUD与高级功能
Spring Boot是一款用于快速构建Spring应用程序的框架,而MyBatis Plus是MyBatis的增强工具,本文将详细介绍如何在Spring Boot项目中整合MyBatis Plus,并展示其基本CRUD功能以及高级功能的实现方式,需要的朋友可以参考下2024-02-02
最新评论