Swagger API文档

  • 前后端分离:

  • 前端就负责展示数据,数据从哪来?后端提供的接口中得到

  • 前端自己有一个叫伪造后端数据,json,这使得前端工程不需要后端仍可以跑起来

  • 前后端的交互就是通过api

  • 前后端相对独立,低耦合

  • 前后端可以部署在不同的服务器上

好处:

之前有一个专门提供后端接口api的工具,postman(不推荐使用了)

  1. 可以通过Swagger给一些比较难理解的属性和接口增加注释信息
  2. 能在线实时测试后端提供的api,实时更新最新的api,降低集成的风险
  3. 后端提供接口,需要实时更新最新的

Swagger:

Swagger是一个优秀的工具

【注意点】在正式发布项目的时候,记得关闭Swagger!!出于安全考虑。而且而且节省运行的内存

  • 号称世界上最流行的Api框架
  • RestFul Api 在线文档自动生成工具 => Api文档与Api定义自动同步
  • 可以直接运行,可以在检测时Api接口
  • 支持多种语言:java、php。。。
  • 去看官网
  • Swagger是老版的Swagger2是新版的

在项目中使用swagger 需要 springfox

  • swagger2
  • ui

SpringBoot集成Swagger

  • 需要用到jackson,进行json解析和序列化

  • 导入maven依赖

    <!-- 集成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>
  • 编写一个工程

  • 写配置

    1. 配置类:SwaggerConfig

      @Configuration

      @EnableSwagger2

    2. 他会进行默认配置,我们就可以访问

      swagger-ui.html

    3. 配置文件:

      package com.mao.config;
      
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import springfox.documentation.service.ApiInfo;
      import springfox.documentation.service.Contact;
      import springfox.documentation.spi.DocumentationType;
      import springfox.documentation.spring.web.plugins.Docket;
      import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; @Configuration
      @EnableSwagger2
      public class SwaggerConfig { //配置文档信息
      private ApiInfo apiInfo() {
      Contact contact = new Contact("毛毛", "https://www.cnblogs.com/maomao777/", "1227537114@qq.com");
      return new ApiInfo(
      "毛毛的Swagger学习", // 标题
      "学习演示如何配置Swagger", // 描述
      "v1.0", // 版本
      "组织链接", // 组织链接
      contact, // 联系人信息
      "Apach 2.0 许可", // 许可
      "许可链接", // 许可连接
      new ArrayList<>()// 扩展
      );
      }
      @Bean //配置docket以配置Swagger具体参数
      public Docket docket() {
      return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
      }
      }
  • 一个Docket就是一个组group


  • 想要实现在测试环境才可以访问swagger-ui界面,生产环境就不可以,

    可以使用@Value注解,或者是通过判断当前环境的端口号。。。

常用注解

Swagger注解 简单说明
@Api(tags = "xxx模块说明") 作用在模块类上
@ApiOperation("xxx接口说明") 作用在接口方法上
@ApiModel("xxxPOJO说明") 作用在模型类上:如VO、BO
@ApiModelProperty(value = "xxx属性说明",hidden = true) 作用在类方法和属性上,hidden设置为true可以隐藏该属性
@ApiParam("xxx参数说明") 作用在参数、方法和字段上,类似@ApiModelProperty

我们也可以给请求的接口配置一些注释

@ApiOperation("毛毛的接口")
@PostMapping("/mao")
@ResponseBody
public String mao(@ApiParam("这个名字会被返回")String username){
return username;
}

@Value的用法 !!!

在使用 @RequestMapping注解的时候,是Get就写@GetMapping注解,是Post就写@PostMapping注解

报错问题:

  1. 集成swagger报错

    (2条消息) 解决 高版本SpringBoot整合Swagger 启动报错Failed to start bean ‘documentationPluginsBootstrapper‘ 问题_摸鱼佬的博客-CSDN博客
  2. ErrorsHide

    Parser error on line 19end of the stream or a document separator is expected


    报错:原因:使用了Shiro权限设置,还没有登陆进行授权,所以访问不了,需要先登录

Swagger在线API测试文档的更多相关文章

  1. golang学习笔记7 使用beego swagger 实现API自动化文档

    golang学习笔记7 使用beego swagger 实现API自动化文档 API 自动化文档 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/doc ...

  2. 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档.

  3. spring boot使用swagger生成api接口文档

    前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...

  4. MVC-WebApi配置 Swagger(Web Api可视化文档)

    一.从创建MVC WebApi开始 第一步创建MVC WebApi就创建好了,接下来就进入正题,上干货 ================================================ ...

  5. ASP.NET Web API 使用Swagger生成在线帮助测试文档

    Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线测试工具.项目的设计架构中一直提倡使用TDD(测试驱动)原则来开发,sw ...

  6. Swagger-UI 基于REST的API测试/文档类插件

    现在多数的项目开发中,网站和移动端都需要进行数据交互和对接,这少不了使用REST编写API接口这种场景.例如我目前的工作,移动端交由了另一团队开发,不同开发小组之间就需要以规范和文档作为标准和协作基础 ...

  7. .NET Core使用swagger进行API接口文档管理

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...

  8. SpringBoot18 Swagger、API接口文档生成、WireMock、模拟后台数据

    1 Swagger 1.1 简述 前后端分离的项目需要前后端开发人员协同工作,后台开发人员需要给到前端开发者一套API文档:利用Swagger可以简单高效的帮助后台开发者生成RestfulAPI开发文 ...

  9. showdoc 开源在线api&&技术文档管理工具

    showdoc 是一个很不错的api 以及技术文档管理工具 环境准备 doker-copose 文件 version: "3" services: doc: image: regi ...

  10. ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET

    以下为教程: 在现有webapi项目中,nuget安装以下两个插件 swagger.net.ui swashbuckle 安装完毕后可以卸载Swagger.NET,此处不需要! 安装完毕后屏蔽以下代码 ...

随机推荐

  1. gitee 删库跑路的正确打开方式

    前言 又是一个周一, 阳光一点都不明媚... 码云 gitee.com 五群 (QQ群号: 515965326) 又发生了一起删库跑路事件(手动滑稽). 手动部分截图 看图说话 为了更好的复现完整的流 ...

  2. 通过TTS模型让猴哥给你讲个故事

    "假"标题:通过TTS模型让猴哥给你讲个故事 "真"标题:使用Python调用硅基流动TTS模型并播放返回的音频数据过程记录 TTS介绍 TTS(Text-to ...

  3. springboot集成docker实现自动化构建镜像说明

    springboot集成docker实现自动化构建镜像说明 文档说明 该文档仅包括通过配置springboot.docker.jenkins.git.appollo等实现持续构建,持续发布的功能,不包 ...

  4. DAY2--IMU测量单元&emmc内存

    打智能车比赛天天碰到imu这个东西,今天给他弄清楚去 1.IMU介绍 惯性测量单元(Inertial measurement unit,简称 IMU),是测量物体三轴姿态角及加速度的装置.一般IMU包 ...

  5. DelayQueue的take方法底层原理

    一.DelayQueue的take()方法底层原理 DelayQueue 的 take 方法是其核心方法之一,用于从队列中获取并移除延迟时间到期的元素.如果队列为空或没有延迟到期的元素,调用 take ...

  6. IDEA插件-Translation

    简介 Translation是一个为IntelliJ IDEA和其他基于JetBrains的IDE(如 PyCharm.WebStorm 等)设计的插件.这个插件的主要功能是帮助开发者在编写代码或文档 ...

  7. 通用型产品发布解决方案(基于分布式微服务技术栈:SpringBoot+SpringCloud+Spring CloudAlibaba+Vue+ElementUI+MyBatis-Plus+MySQL+Git+Maven+Linux+Docker+Nginx - 《01》

    通用型产品发布解决方案(基于分布式微服务技术栈:SpringBoot+SpringCloud+Spring CloudAlibaba+Vue+ElementUI+MyBatis-Plus+MySQL+ ...

  8. LLM Agent的构建:OpenAI官方指南解读

    本文是对 OpenAI 近期发布的<A Practical Guide to Building Agents>的读后感与总结 Agent火爆的背景 大型语言模型(LLM)处理复杂.多步骤任 ...

  9. C#/.NET/.NET Core技术前沿周刊 | 第 36 期(2025年4.21-4.27)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  10. Mysql如何给字符串添加索引(前缀索引)

    在日常开发中,我们经常给字符串添加索引,那么给字段添加索引有什么技巧吗,我们看看下面的例子,我们给一个邮箱添加索引,应该如何添加呢 看看下面这条sql select * from user where ...