目的:

  1. Swagger是什么

  2. Swagger的优点

  3. Swagger的使用


Swagger是什么

官网(https://swagger.io/

  Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步,其实也就是 前后端开发人员联系的纽带 ——swagger就是一款让你更好的书写API文档的框架。 

  swagger根据你的代码的改变也会自动改变生成接口


Swagger的优点

  1. - Swagger Spec 是一个规范。

  2. - Swagger Api 是 Swagger Spec 规范 的一个实现,它支持 jax-rs, restlet, jersey 等等。

  3. - Springfox libraries 是 Swagger Spec 规范 的另一个实现,专注于 spring 生态系统。

  4. - Swagger.js and Swagger-ui 是 javascript 的客户端库,能消费该规范。

  5. - springfox-swagger-ui 仅仅是以一种方便的方式封装了 swagger-ui ,使得 Spring 服务可以提供服务。


Swagger的使用

  添加关于swagger的pom依赖

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

SwaggerController

只有在类上使用@Api注解标注并且在方法上使用@ApiOperation注解才会暴露给swagger,

这种方式没有包名的限制,可以将需要暴露的接口分散到各个包里,不使用这两个注解就不会暴露

对象属性                        @ApiModelProperty                用在参数对象的字段上

协议集描述                    @Api                                        用在Conntroller类上

协议描述                        @ApiOperation                        用在controller方法上

Response集                   @ApiResponses                      用在controller方法上

Response                      @ApiResponse                        用在@ApiResponses里面

非对象参数集                 @ApilmplicitParams                用在controller方法上

paramType:表示参数放在哪个地方
    header-->请求参数的获取:@RequestHeader(代码中接收注解)
    query-->请求参数的获取:@RequestParam(代码中接收注解)
    path(用于restful接口)-->请求参数的获取:@PathVariable(代码中接收注解)
    body-->请求参数的获取:@RequestBody(代码中接收注解)
    form(不常用)

package com.ht.swagger.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController; /**
* 这是一个测试类,所以这里是用注解开发接口去测试swagger
*/
@Api(description = "测试接口") //使用位置,用来标识Class
@RestController
public class swaggerController {
@ApiOperation(value = "测试") //接口说明,这里相当于编写了个名字
@PostMapping("/test") //这里是用来post提交
public String index(){
return "本是青灯不归客"; //返回的数据
}
}

启动类SwaggerApplication

package com.ht.swagger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableScheduling; @EnableScheduling
@SpringBootApplication(scanBasePackages = "com",exclude = { DataSourceAutoConfiguration.class }) //这里相当于访问了com包下所有类,并且关闭它访问数据源的渠道
public class SwaggerApplication { public static void main(String[] args) {
SpringApplication.run(SwaggerApplication.class, args);
} }

exclude = { DataSourceAutoConfiguration.class } //设置可以不用访问数据库数据也可以启动成功

如果不添加上述所说的代码,就会报下面这个错

启动成功:

去浏览器中访问  http://localhost:8080/swagger-ui.html

就可以看到进入swagger成功

看我返回的数据和生成的接口文档

如果页面报404的错的话

  加入这个类

package com.ht.swagger.controller;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Component
public class WebMvcConfig implements WebMvcConfigurer { /**
* 添加静态资源文件,外部可以直接访问地址
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
} }

谢谢观看!!!

Spring Boot 集成 Swagger生成接口文档的更多相关文章

  1. Spring Boot 集成 Swagger 构建接口文档

    在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...

  2. Spring Boot Swagger2自动生成接口文档

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 1.问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 2 ...

  3. spring boot:用swagger3生成接口文档,支持全局通用参数(swagger 3.0.0 / spring boot 2.3.2)

    一,什么是swagger? 1,  Swagger 是一个规范和完整的文档框架, 用于生成.描述.调用和可视化 RESTful 风格的 Web 服务文档 官方网站: https://swagger.i ...

  4. Spring Boot集成JasperReports生成PDF文档

    由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲染生成PDF文档.本人文采欠缺,写作能力 ...

  5. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  6. asp.net core 使用 swagger 生成接口文档

    参考地址:http://www.cnblogs.com/daxnet/p/6181366.html http://www.jianshu.com/p/fa5a9b76f3ed 微软参考文档:https ...

  7. webapi 利用webapiHelp和swagger生成接口文档

    webapi 利用webapiHelp和swagger生成接口文档.均依赖xml(需允许项目生成注释xml) webapiHelp:微软技术自带,仅含有模块.方法.请求-相应参数的注释. swagge ...

  8. .net core 使用 swagger 生成接口文档

    微软参考文档:https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs= ...

  9. Springboot集成swagger2生成接口文档

    [转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11509884.html    作者:jstarseven    码字挺辛苦的.....   一 ...

随机推荐

  1. Linux openkvm disk expansion

    How to Increase the size of a Linux LVM by expanding the virtual machine disk https://www.rootusers. ...

  2. lintcode 394. Coins in a Line 、leetcode 292. Nim Game 、lintcode 395. Coins in a Line II

    变型:如果是最后拿走所有石子那个人输,则f[0] = true 394. Coins in a Line dp[n]表示n个石子,先手的人,是必胜还是必输.拿1个石子,2个石子之后都是必胜,则当前必败 ...

  3. 获取并打印Spring容器中所有的Bean名称

    思路: 1.实现Spring的ApplicationContextAware接口,重写setApplicationContext方法,将得到的ApplicationContext对象保存到一个静态变量 ...

  4. postgresql 所有聚合函数整理

    SELECT DISTINCT(proname) FROM pg_proc WHERE proisagg order by proname 查所有 SELECT * FROM pg_proc WHER ...

  5. pytorch求范数函数——torch.norm

    torch.norm(input, p='fro', dim=None, keepdim=False, out=None, dtype=None) 返回所给tensor的矩阵范数或向量范数 参数: i ...

  6. Flutter常用库:

    flutter_screenutil: ^0.6.0 #用于屏幕适配的包 dio: ^3.0.3 #建立请求需要的包 event_bus: ^1.1.0 #事件发布的包 shared_preferen ...

  7. linux下nacos的1.1.3版本集群部署

    windows单机版参见0.9.0.RELEASE版本的spring cloud alibaba nacos实例 ,linux集群版我们还是用上次下载的nacos压缩包,通过rz -y上传到wlf用户 ...

  8. 搭建Keepalived+LVS-DR集群

    (1).Keepalived概述 keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层.第 4 层和第 5层交换. Keepalived ...

  9. Cas(09)——通过Proxy访问其它Cas应用

    通过Proxy访问其它Cas应用 目录 1.1     原理 1.2     配置 1.2.1    代理端 1.2.2    被代理端 1.3     请求示例 考虑这样一种场景:有两个应用App1 ...

  10. CentOS 6和CentOS 7的系统服务管理

    也许你配置过Windows开机启动的服务,其中有些服务在日常的管理工作中用不到,我们就要把它停止,一来可以节省资源,而来可以减少安全隐患.在Linux上同样也有相关的工具来管理系统的服务. chkco ...