SpringBoot学习历程(八):集成Swagger2(2.9.2版本)构建RESTful API

SpringBoot中使用Swagger生成RESTful规范API文档 Swagger是为了描述一套标准的而且是和语言无关的REST API的规范。对于外部调用者来说,只需通过Swagger文档即可清楚Server端提供的服务,而不需去阅读源码或接口文档说明。 官方网站为:http://swagger.io 中文网站:http://www.sosoapi.com 背景 前后端分离 1、前后端仅仅通过异步接口(AJAX/JSON)来编程 2、前后端都 阅读详情

前言

现在的架构基本都由原来的后端渲染,变成了:前端渲染、前后端分离的形态,前端和后端唯一联系,变成了API接口;swagger就是一款让你更好的维护API文档的框架。

  • Swagger官网:https://swagger.io/
  • github仓库地址:https://github.com/RabbitsInTheGrass/springBoot-Learning
  • 本人所用springboot版本为2.1.9

1. 引入依赖

<!-- 引入swagger2依赖 -->
<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>

2. 开启配置

2.1 开关设置

在application.yml 中加入

spring:
  swagger:
    enable: true

true表示启用,false表示关闭

2.2 config配置

package com.rabbits.learn.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @Description: Swagger2配置信息
 * @Author: RabbitsInTheGrass_xj
 * @Date: 2019/10/4 10:36
 */
@EnableSwagger2
@Configuration
@ConditionalOnProperty(name = "spring.swagger.enable", havingValue = "true")
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInf())
                .select()
                //扫描的swagger接口包路径
                .apis(RequestHandlerSelectors.basePackage("com.xj.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInf() {
        return new ApiInfoBuilder()
                //标题
                .title("RabbitsInTheGrass的用Swagger2构建RESTful API文档")
                .description("更多SpringBoot相关文章请关注:https://blog.youkuaiyun.com/RabbitInTheGrass")
                .termsOfServiceUrl("https://blog.youkuaiyun.com/RabbitInTheGrass/article/details/102026732")
                //作者
                .contact(new Contact("RabbitInTheGrass", "https://blog.youkuaiyun.com/RabbitInTheGrass", "xiqiyeyou@163.com"))
                //版本
                .version("1.0")
                .build();
    }
}

@ConditionalOnProperty(name = “spring.swagger.enable”, havingValue = “true”)该注解标识@Configuration注解开启的条件。
name对应application.yml中的参数;
havingValue表示条件值。

2.3 在main方法中开启对Swagger的支持

启动类增加@EnableSwagger2的注释。

2.4 Swagger2常用注解

  • @Api: 修饰整个类,描述Controller的作用;
  • @ApiIgnore: 忽略该Controller,指不对当前类做扫描
  • @ApiOperation: 描述Controller类中的method接口
  • @ApiParam: 单个参数描述,与@ApiImplicitParam不同的是,他是写在参数左侧的。如(@ApiParam(name = “username”,value = “用户名”) String username)
  • @ApiModel: 描述POJO对象
  • @ApiProperty: 描述POJO对象中的属性值
  • @ApiImplicitParam: 描述单个请求入参信息
  • @ApiImplicitParams: 描述多个请求入参信息
  • @ApiResponse: 描述单个出参信息
  • @ApiResponses: 描述多个出参信息
  • @ApiError: 接口错误所返回的信息

对应于HTTP协议中的方法注解:

  • @GetMapping对应HTTP中的GET方法;
  • @PostMapping对应HTTP中的POST方法;
  • @PutMapping对应HTTP中的PUT方法;
  • @DeleteMapping对应HTTP中的DELETE方法;
  • @PatchMapping对应HTTP中的PATCH方法。

2.5 在controller类增加相关注解

package com.rabbits.learn.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description: 测试一下
 * @Author: RabbitsInTheGrass_xj
 * @Date: 2019/10/1 09:31
 */
@RestController
@RequestMapping("/home")
@Api(value = "我的hello层")
public class HomeController {

    @ApiOperation(value = "打招呼", notes = "开始的一个hello")
    @GetMapping("hello")
    public String sayHello() {
        return "Hello RabbitsInTheGrass, welcome!!!";
    }
}

2.6 测试

启动项目后访问 http://localhost:8080/swagger-ui.html ,效果图如下:
在这里插入图片描述

SpringBoot 精通系列-使用Swagger2构建RESTful APIs 导语   在之前的博客中曾经说过关于SpringBoot RESTful架构的知识,也提供了一个简单的小例子,当然在实际工作中更多的使用的是Swagger来实现一个RESTful的API。那么下面就来看看如何利用Swagger来构建一个RESTful APIs 文章目录什么是Swagger快速开发导入依赖POM文件创建SwaggerConfig的配置类Swagger 常用注解@Api@ApiO... 阅读详情

相关推荐

SpringBoot与Swagger2结合的RESTful API开发指南

SpringBoot是一种基于Spring框架的轻量级启动框架,它简化了基于Spring的应用开发过程。SpringBoot的目的是为开发者提供快速、广泛采纳的开发方式,让构建独立的、产品级别的Spring应用变得容易。通过约定优于配置的原则,SpringBoot能够使开发者快速启动并运行新的Spring项目。对于5年以上的IT从业者来说,SpringBoot的出现极大地提高了开发效率和项目的可维护性。

weixin_42163404的博客 661

springboot整合swagger错误

错误介绍 2021-11-27 00:21:38.420 INFO 205300 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2021-11-27 00:21:38.432 INFO 205300 --- [ main] ConditionEvaluationReportLoggingListener : Error starting Appl

夙白风语的博客 2382

springfox-spring-web-2.9.2.jar

springfox-spring-web-2.9.2

springboot 集成 Swagger2 配置以及常用注解的说明和使用 ( 超详细)

一、注解的使用 和 说明结构化说明如下: @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" (也就是给类取别名) value="该参数没什么意义,在UI界面上也看到,所以不需要配置" @ApiOperation:用在请求的方法上,说明方法的用途、作用 value="说明方法的用途、作用" notes="方法的备注说明" @ApiImplicitParams:用在请求的方法上,表示一组参数说明 @Ap

m0_63180675的博客 6646

springfox-spi-2.9.2-API文档-中文版.zip

赠送jar包:springfox-spi-2.9.2.jar; 赠送原API文档:springfox-spi-2.9.2-javadoc.jar; 赠送源代码:springfox-spi-2.9.2-sources.jar; 赠送Maven依赖信息文件:springfox-spi-2.9.2.pom; 包含翻译后的API文档:springfox-spi-2.9.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.springfox:springfox-spi:2.9.2; 标签:springfox、spi、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

保姆级教程:用中移ML307模组对接高德/OneOS定位服务,从配置apikey到解析+MLBSLOC状态码

本文详细介绍了如何使用中移ML307系列模组对接高德/OneOS定位服务,从配置apikey到解析+MLBSLOC状态码的全过程。涵盖高德定位服务和OneOS定位服务的配置步骤、常见错误处理及性能优化技巧,帮助开发者快速实现基站定位功能,提升物联网项目的定位精度和稳定性。

weixin_30632089的博客 508

报错Error creating bean with name ‘documentationPluginsBootstrapper‘ defined in URL

接口路径写重复了!

weixin_51293984的博客 2082

点云数据增强及预处理

数据增强: 1. random world flip:沿着x或者y轴,翻转点云 点云的x或者y,要翻转 3d box中心的x或者y,要翻转 3d box的朝向要翻转 point segmentation label,点云的相对顺序没有发生变化 2. random_world_rotation:沿着点云原点,旋转点云 点,x,y,绕z轴旋转 3d box,绕z轴旋转,中心和朝向都要变化 point segmentation label,点云的相对顺序没有发生变化 3. random_world_scaling

huang_victor的博客 4011

springboot集成swagger2.9.2

1.准备 springboot 版本 2.2.3 swagger 版本2.9.2(这个版本集成之后访问swagger主界面可能会报数字转换异常java.lang.NumberFormatException,空字符串的变量转换成Long类型时异常,即实体类中的属性转换异常。因为这个版本规定@ApiModelProperty如果是Integer类型的时候,如果example这个属性没有赋值,默认是空字符串,然后空字符串转换成Long报错。) ...

qq_40286198的博客 2477

利用wolcmd.exe批处理执行远程唤醒

代码如下: @echo off cls :check if exist wolcmd.exe goto targetmac echo 缺少wolcmd.exe echo. goto end :targetmac cls echo -------------------------------------------------------- echo 目标主机PC-01地址:40235678A...

Chriseo的博客 6949

更换光猫的原理与方法

当你给装维打电话说你需要更换光猫时,对于装维来说,他并不需要知道怎么更换,他只需要生成一张工单,由后台进行业务操作后,在去用户家把新光猫给装好即可,此时装维到底起到了什么作用呢?我想可能只是运输员吧,把一个设备从一个地方运到另一个地方罢了,此时并不能指望装维做什么,因为本质上来说装维的能力真的很差很差,我是不知道那些装维哪来的勇气做视频,还说自己什么什么能力很强?很强吗?吹牛的技术确实很强。 更换光猫之前,需要先明白为什么要更换光猫,怎么更换光猫,更换后不能用怎么办?怎么才能更换成功,换光猫以后被限速了怎么

qq_34146290的博客 1万+

SpringBoot集成springfox-swagger2构建restful API

Springboot集成springfox-swagger2构建restful API,Springmvc集成springfox-swagger2构建restful API,

兴国-为梦想而战 3万+

BGE(BAAI General Embedding)模型详解

BGE(BAAI General Embedding)是北京智源人工智能研究院(BAAI)推出的通用文本嵌入模型系列,旨在为各种自然语言处理任务提供高质量的向量表示。

ttyy1112的专栏 7559

SpringBoot集成Swagger2

本章节主要介绍SpringBoot项目集成Swagger2的一些相关知识,包括集成版本、依赖、集成方式、以及简单的使用。官方提供的SwaggerUI太low,本篇集成了knife4j,在可视化方面有了大大的提示,操作更加人性化。Swagger是一个restful规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 工具。在后端服务定义好参数格式以及方法,启动服务后网页即可访问接口信息文档 ,并且在网页端可进行接口测试。Swagger让部署管理和使用功能强大的API变得非常简单。 2.代码配置

Oaklkm的博客 5987

【干货攻略】Oracle报错篇 ORA-01378 磁盘扇区大小不兼容问题

本期将为大家分享“ORA-01378 磁盘扇区大小不兼容”报错的问题解决方案。

PWY13148的专栏 1438

【PCIe】CDNS PCIe VIP 杂记 -- Callback

最近在研究Cadence PCIe VIP,怎一个“惨淡”来描述。用的真是一言难尽啊,都是泪。记录一些最近学习的觉得想记录的内容在此,仅供参考讨论学习哈。有不对之处请指出大家一起讨论。

小邦是名小ICer的博客 2716

SpringBoot集成Swagger2生成Api文档

只需添加少量注解,就可生成详细的接口文档以及ui界面,提高开发效率

a1939504134的博客 2776

英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

本文讲述英飞凌TC3xx的通用计时器GTM的架构。

无所适从的我的博客 4600

SpringBoot2 集成swagger2.9.2

POM.XML <!--swagger--> <!-- 文档自动生成 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2&l...

Rorschach 2270

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringBoot 集成 Swagger 构建Restful Api 文档

Swagger 是一个简单但功能强大的 API 表达工具。它具有地球上最大的 API 工具生态系统,数以千计的开发人员,使用几乎所有的现代编程语言,都在支持和使用 Swagger。使用 Swagger 生成 API,我们可以得到交互式文档,自动生成代码的 SDK 以及 API 的发现特性等。 使用 Spring Boot 集成 Swagger 的理念是,使用注解来标记出需要在 API 文档中展示的...

. 536

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【swagger2】SpringBoot集成springfox-swagger2构建restful API

springboot整合swagger2 文章SpringMVC集成springfox-swagger2构建restful API简单写了如何在springmvc中集成swagger2。这边记录下在springboot中如何集成swagger2,其实使用基本相同。 一、引入依赖 使用maven,在pom.xml中引用相关依赖(swagger版本2.4.0,springboot的版本为2.1.5.RELEASE): <dependency> <groupId>io..

ooooooooooooooxiaosu的博客 372

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

springboot集成Swagger2构建RESTful API文档

什么是Swagger2 可以自行百度了解 Swagger2提供了什么能力 随项目自动生成强大RESTful API文档,减少工作量 API文档与代码整合在一起,便于同步更新API说明 页面测试功能来调试每个RESTful API 集成Swagger2 1.修改pom.xml, 添加Swagger2依赖 &lt;dependency&gt; &lt;groupId&gt;io...

沐宇熙IT成长之路 1305

SpringBoot中集成Swagger2

Swagger是非常流行的API框架,能够自动生成RESTFul 风格的API文档,还可以在线测试后台接口。使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。前后端分离的开发模式下,前端通过后端的API文档来进行开发和联调,效率更高。

这是我的笔记本,记录学习历程,分享学习经验,菜鸡一枚,感谢支持! 1444

Spring Boot中使用Swagger2构建RESTful API文档

转载声明:商业转载请联系作者获得授权,非商业转载请注明出处 © wekri 随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象 添加Swagger2依赖 在pom.xml中添加swagger2依赖 &lt;dependency&gt; &lt;gr...

Eacter的专栏 5411

SpringBoot学习总结(9)之使用Swagger2构建RESTful API文档

一、RESR简介 REST 这个词是Roy Thomas Fielding 在他2000 年的博士论文中提出的, Fielding 是一个非常重要的人,他是HTTP 协议( 1.0 版和1.1 版)的主要设计者、Apache 服务器软件的作者之一、Apache 基金会的第一任主席。所以,他的这篇论文发表后,就引起了广泛关注,并且对互联网开发产生了深远的影响。 Fielding 将他对互联网软件...

jokeMqc的博客 491

springboot集成swagger2,构建优雅的Restful API

swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气,正如它的名字。 一、引入依赖        &lt;dependency&gt;            &lt;groupId&gt;io.springfox&lt;/groupId&...

m0_37897396的博客 258
上一篇: SpringBoot学习历程(七):集成Thymeleaf模板引擎
下一篇: windows10家庭版安装Docker for Windows
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RabbitsInTheGrass

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值