http://springfox.github.io/springfox/docs/current/#customizing-the-swagger-endpoints
一、什么是Swagger?
Swagger: 一个描述Restful service规范
可以在界面上测试RestfulService
- swagger-ui: 用来显示API文档
- swagger-editor: 就是一个在线编辑文档说明文件(swagger.json或swagger.yaml文件)的工具,以方便生态中的其他小工具(swagger-ui)等使用
- swagger-validator: 这个小工具是用来校验生成的文档说明文件是否符合语法规定的。用法非常简单,只需url地址栏,根路径下加上一个参数url,参数内容是放swagger说明文件的地址。即可校验。
- swagger-codegen: 代码生成器,脚手架。可以根据swagger.json或者swagger.yml文件生成指定的计算机语言指定框架的代码。
二、Swagger 和 Springfox-Swagger
What is the relationship between swagger-ui and springfox-swagger-ui?
Swagger Spec is a specification.
Swagger Api - an implementation of that specification that supports jax-rs, restlet, jersey etc.
Springfox libraries in general - another implementation of the specification focused on the spring based ecosystem.
Swagger.js and Swagger-ui - are client libraries in javascript that can consume swagger specification.
springfox-swagger-ui - the one that you’re referring to, is just packaging swagger-ui in a convenient way so that spring services can serve it up.
翻译下来就是:
swagger-ui 和 springfox-swagger-ui 的关系是?
Swagger Spec 是一个规范。
Swagger Api 是 Swagger Spec 规范 的一个实现,它支持 jax-rs, restlet, jersey 等等。
Springfox libraries 是 Swagger Spec 规范 的另一个实现,专注于 spring 生态系统。
Swagger.js and Swagger-ui 是 javascript 的客户端库,能消费该规范。
springfox-swagger-ui 仅仅是以一种方便的方式封装了 swagger-ui ,就是可以显示文档内容
三、Springboot 与Swagger集成
1. 增加下面maven 引用
<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>
2. 增加一个Swaagger configuration
package com.example.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class Swagger2UiConfiguration extends WebMvcConfigurerAdapter { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("org.springframework.boot")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("springboot利用swagger构建api文档") .description("简单优雅的restful风格,http://XX") .termsOfServiceUrl("http://XXx") .version("1.0") .build(); } }
3.Spring Boots Application 类增加 @EnableSwagger2
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableSwagger2 public class UserApplication1 { public static void main(String[] args) { SpringApplication.run(UserApplication1.class, args); } }
4. 在Controller 中增加相对应的API注释
package com.example.demo; import java.util.concurrent.atomic.AtomicLong; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; @RestController public class GreetingController { private static final String template = "Hello, %s!"; private final AtomicLong counter = new AtomicLong(); @ApiOperation(value="获取Greeting info", notes="根据name获取greeting info") @ApiImplicitParam(name = "name", value = "用户名", required = true, dataType = "String", paramType = "path") @RequestMapping("/greeting") public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) { return new Greeting(counter.incrementAndGet(), String.format(template, name)); } }
部署启动服务器
访问: http://localhost:8080/swagger-ui.html#
四、Swagger注解
swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。
- @Api:修饰整个类,描述Controller的作用
- @ApiOperation:描述一个类的一个方法,或者说一个接口
- @ApiParam:单个参数描述
- @ApiModel:用对象来接收参数
- @ApiProperty:用对象接收参数时,描述对象的一个字段
- @ApiResponse:HTTP响应其中1个描述
- @ApiResponses:HTTP响应整体描述
- @ApiIgnore:使用该注解忽略这个API
- @ApiError :发生错误返回的信息
- @ApiImplicitParam:一个请求参数
- @ApiImplicitParams:多个请求参数
相关推荐
在这个"Spring boot+swagger(demo)"项目中,我们主要探讨的是如何将Swagger与Spring Boot结合,以便于快速开发和测试API。下面我们将深入探讨这两个技术以及它们的集成。 1. **Spring Boot**: Spring Boot的核心...
1. **Spring Boot**: Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。它内置了Tomcat服务器,可以快速创建独立运行的Java应用。Spring Boot通过“约定优于配置”的原则,减少了大量...
从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建
"boot+swagger2.rar"这个压缩包文件很显然包含了一个使用Spring Boot集成Swagger2的示例项目。Swagger2是OpenAPI Specification(OAS)的一个实现,该规范定义了一种标准格式来描述RESTful API,使得开发者能够轻松...
Spring boot+Mybatis+Mysql+Swagger整合,包括spring boot下创建过滤器filter与intercepter拦截器,使用Intellij idea创建工程,测试OK
spring boot + swagger2集成api接口文档,springBoot+swagger+mysql 搭建的一个项目。可以启动。可供参考使用; Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是...
在Spring Boot中集成Swagger2,可以方便地生成API文档,允许开发者直观地理解接口定义,从而提高开发效率和协同工作能力。 4. **前后端分离**: 前后端分离是现代Web开发的一种架构模式,其中前端和后端通过API...
本项目“Springboot+SpringSecurity+SpringSession+Redis+Mybatis-Plus+Swwager”整合了Spring Boot、Spring Security、Spring Session、Redis、Mybatis-Plus以及Swagger等技术,旨在构建一个强大的、安全的、具有...
springboot框架+Swagger2Api接口文档生成工具,里面有2个查询示例。 运行项目后,http://localhost:8080/doc.html或者http://localhost:8080/swagger-ui.html,推荐使用第一个。第一个比较直观。数据库自己建立一下...
在本项目中,我们主要关注的是使用Spring Boot 2.6.11、Spring Cloud以及Swagger3构建微服务架构的过程。这些技术都是现代云应用开发中的核心组件,它们各自提供了强大的功能来简化开发和增强应用的可维护性。 首先...
前后端分离项目,Spring boot作为后端,vue框架实现前端,后端整合swagger3测试工具,jwt实现验证码生成,awt生成图形验证码,整合邮箱验证,使用mybatis-generator自动生成实体类以及mapper,设置有拦截器验证登录...
Swagger 提供了一种直观的方式来文档化和测试API,而Spring Boot则是一个快速开发框架,简化了Spring应用的配置和启动过程。本示例将详细介绍如何在Spring Boot项目中整合Swagger,创建一个简单但功能齐全的API文档...
java代码springboot+Swagger+redis+mybatis+restful代码案例(有文档),写了三个版本的代码,都是简单的代码案例,有数据库设计,完成了表的增删改,关键是这几个技术都有锻炼到位,里面有三个案例,都是不同实现的,...
spring boot+mybatis+thymeleaf+apache shiro开发面向学习型的后台管理系统BootDo,参考地址 http://blog.csdn.net/zhaokejin521/article/details/78719722
基础框架:Spring Boot 2.1.0.RELEASE 持久层框架:Spring boot Jpa 安全框架:Spring Security 缓存框架:Redis 日志打印:logback+log4jdbc 接口文档 swagger2 其他:fastjson,aop,MapStruct等。 页面框架:Vue ...
Spring Boot、Shiro和MyBatis这三大框架的组合提供了一种高效且灵活的方式来实现这一目标。本项目通过集成这三个工具,能够根据用户的登录身份展示不同的权限菜单,确保了用户只能访问他们被授权的功能。 **Spring ...
SpringBoot是Java开发中的一个流行框架,它简化了Spring应用的初始搭建以及开发过程。在本次配置中,我们将探讨如何整合SpringBoot与Swagger3、MyBatis-Plus 3.5.1、Druid和Log4j2,打造一套高效且易维护的后台系统...
使用SpringBoot+SpringJPA+Swagger+Shiro快速搭建前后端分离的权限管理系统源码,方便二次开发,项目经过严格测试,确保可以运行! 快速搭建前后端分离的权限管理系统 提供一套基于SpringBoo+shiro的权限管理思路. ...
在本教程中,我们将深入探讨如何将Swagger2与Spring Boot集成,同时考虑到Spring Security和JWT(JSON Web Token)的安全机制。Swagger2是一个流行的API文档工具,它允许开发者以交互式方式展示和测试RESTful API。...