热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot整合Swagger2以及相关知识点详解

在上一篇记录了SpingBoot使用Restful风格实现增删改查,所以我们就在上一篇代码的基础上实现本节内容。因为现在很多都是前后端分离,所以有一份合

在上一篇记录了SpingBoot使用Restful风格实现增删改查 ,所以我们就在上一篇代码的基础上实现本节内容。因为现在很多都是前后端分离,所以有一份合理高效的API文档就很重要。虽然苦B的我平时项目中前后端都是自己做,但是该学的还是得学啊。好了,进入主题。


一、pom.xml

io.springfoxspringfox-swagger22.9.2io.springfoxspringfox-swagger-ui2.9.2

二、Swagger2配置类

在启动类的同目录下创建Swagger2的配置类

@Configuration
@EnableSwagger2
public class Swagger2 {&#64;Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() // 选择那些路径和api会生成document.paths(PathSelectors.any()).apis(RequestHandlerSelectors.any())// 对所有api进行监控.apis(RequestHandlerSelectors.basePackage("com.example.restfuldemo.controller")).build().securitySchemes(security());}/*** 接口文档详细信息** &#64;return*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("这是我的接口文档").contact(new Contact("LoneWalker", "", "LoneWalker&#64;163.com")).description("这是SWAGGER_2生成的接口文档").version("v1.0").build();}private List security() {ArrayList apiKeys &#61; new ArrayList<>();apiKeys.add(new ApiKey("token", "token", "header"));return apiKeys;}
}

三、在类和方法上加上相关注解

&#64;Api(tags &#61; "用户信息接口")
&#64;RestController
&#64;RequestMapping("/api/user")
public class UserInfoController {&#64;AutowiredUserInfoService userInfoService;&#64;ApiOperation("添加用户信息")&#64;PostMappingpublic int addUser(UserInfo userInfo){return userInfoService.addUser(userInfo);}&#64;ApiOperation("更新用户信息")&#64;PutMappingpublic int updateUser(UserInfo userInfo){return userInfoService.updateUser(userInfo);}&#64;ApiOperation("删除用户信息")&#64;DeleteMappingpublic int delUser(int id){return userInfoService.delUser(id);}&#64;ApiOperation("获取所有用户")&#64;GetMapping("/userAll")public List findAll(){return userInfoService.findAll();}}

&#64;ApiModel(value &#61; "用户类")
public class UserInfo implements Serializable {&#64;ApiModelProperty(value &#61; "ID", example &#61; "1")private Integer id;&#64;ApiModelProperty("用户真实姓名")private String name;&#64;ApiModelProperty("密码")private String password;&#64;ApiModelProperty("盐值")private String salt;&#64;ApiModelProperty("状态")private String state;&#64;ApiModelProperty("用户账号")private String username;

运行项目&#xff0c;测试访问&#xff1a;http://localhost:8080/swagger-ui.html


四、相关知识点记录

4.1常用注解

&#64;Api&#xff1a;用在请求的类上&#xff0c;表示对类的说明tags&#61;"说明该类的作用&#xff0c;可以在UI界面上看到的注解"value&#61;"该参数没什么意义&#xff0c;在UI界面上也看到&#xff0c;所以不需要配置"&#64;ApiOperation&#xff1a;用在请求的方法上&#xff0c;说明方法的用途、作用value&#61;"说明方法的用途、作用"notes&#61;"方法的备注说明"&#64;ApiImplicitParams&#xff1a;用在请求的方法上&#xff0c;表示一组参数说明&#64;ApiImplicitParam&#xff1a;用在&#64;ApiImplicitParams注解中&#xff0c;指定一个请求参数的各个方面name&#xff1a;参数名value&#xff1a;参数的汉字说明、解释required&#xff1a;参数是否必须传paramType&#xff1a;参数放在哪个地方· header --> 请求参数的获取&#xff1a;&#64;RequestHeader· query --> 请求参数的获取&#xff1a;&#64;RequestParam· path&#xff08;用于restful接口&#xff09;--> 请求参数的获取&#xff1a;&#64;PathVariable· body&#xff08;不常用&#xff09;· form&#xff08;不常用&#xff09; dataType&#xff1a;参数类型&#xff0c;默认String&#xff0c;其它值dataType&#61;"Integer" defaultValue&#xff1a;参数的默认值&#64;ApiResponses&#xff1a;用在请求的方法上&#xff0c;表示一组响应&#64;ApiResponse&#xff1a;用在&#64;ApiResponses中&#xff0c;一般用于表达一个错误的响应信息code&#xff1a;数字&#xff0c;例如400message&#xff1a;信息&#xff0c;例如"请求参数没填好"response&#xff1a;抛出异常的类&#64;ApiModel&#xff1a;用于响应类上&#xff0c;表示一个返回响应数据的信息&#xff08;这种一般用在post创建的时候&#xff0c;使用&#64;RequestBody这样的场景&#xff0c;请求参数无法使用&#64;ApiImplicitParam注解进行描述的时候&#xff09;&#64;ApiModelProperty&#xff1a;用在属性上&#xff0c;描述响应类的属性

4.2 提示

&#64;ApiModelProperty描述Integer类型参数时&#xff0c;不加example会报

java.lang.NumberFormatException: For input string: ""

 


推荐阅读
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 初学SpringBootch06接口架构风格 RESTful
    ch06-接口架构风格RESTful1.1认识RESTful1.1.1RESTful架构风格1.2RESTful注解1.3RESTful风格的使用1.3.1加入Maven依赖1.3 ... [详细]
  • SAP接口编程PyRFC 调用 BAPI_FIXEDASSET_CREATE1创建固定资产
    本篇演示通过PyRFC调用BAPI_FIXEDASSET_CREATE1在SAP系统中创建固定资产,再一次体验一下Python与其它语言相比的简洁性。首先简单说明B ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
author-avatar
鄙人灵魔世界
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有