目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有效解决前后端人员沟通难的问题。

下面我们使用SpringBoot结合swagger2生成Restful API文档。

一 搭建项目,引入依赖

新建一个spring-boot-swaager的项目,引入swaager2的依赖,由于swagger2的ui不是很美观,这里将使用开源的swagger-bootstrap-ui做为ui。

引入依赖

  1. <!-- swaager2依赖 -->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-swagger2</artifactId>
  5. <version>2.9.2</version>
  6. </dependency>
  7. <!-- swaager2ui -->
  8. <dependency>
  9. <groupId>com.github.xiaoymin</groupId>
  10. <artifactId>swagger-bootstrap-ui</artifactId>
  11. <version>1.9.6</version>
  12. </dependency>

项目中配置swagger相关信息

  1. @Configuration
  2. @EnableSwagger2
  3. public class configuration {
  4. @Bean
  5. public Docket createRestApi(){
  6. return new Docket(DocumentationType.SWAGGER_2)
  7. .apiInfo(apiInfo())
  8. .select()
  9. .apis(RequestHandlerSelectors.basePackage("com.javatrip.swagger.controller"))
  10. .paths(PathSelectors.any())
  11. .build();
  12. }
  13. private ApiInfo apiInfo(){
  14. return new ApiInfoBuilder()
  15. // 标题
  16. .title("某某项目接口文档")
  17. // 描述
  18. .description("swagger2接口文档使用演示")
  19. // 版本
  20. .version("1.0")
  21. // 许可证
  22. .license("MIT")
  23. // 许可证地址
  24. .licenseUrl("www.xx.com")
  25. // 服务端地址
  26. .termsOfServiceUrl("https://www.cnblogs.com/zhixie/")
  27. // 联系信息
  28. .contact(new Contact("java旅途","https://www.cnblogs.com/zhixie/","binzh303@163.com"))
  29. .build();
  30. }
  31. }

访问路径,查看生成效果

文章中使用的这个ui,接口文档地址为ip:port/doc.html,生成的文档信息如下:

二 编写Restful接口

新建实体类

  1. @ApiModel("用户实体类")
  2. @Data
  3. @NoArgsConstructor
  4. @AllArgsConstructor
  5. public class Person {
  6. @ApiModelProperty("姓名")
  7. private String name;
  8. @ApiModelProperty(value = "年龄")
  9. private int age;
  10. }

新建Restful接口

  1. @Api(tags = "用户接口")
  2. @RestController
  3. @RequestMapping("person")
  4. public class PersonController {
  5. @ApiOperation(value = "获取用户列表",notes = "根据name获取用户列表")
  6. @ApiImplicitParams({
  7. @ApiImplicitParam(name = "name",value = "用户姓名",dataType = "String",required = true),
  8. @ApiImplicitParam(name = "age",value = "年龄",dataType = "int",required = true)
  9. })
  10. @GetMapping("/{name}")
  11. public Person getPerson(@PathVariable("name") String name,@RequestParam int age){
  12. return new Person(name,age);
  13. }
  14. @ApiOperation(value = "新增用户",notes = "根据用户实体类新增用户")
  15. @ApiImplicitParam(name = "person",value = "用户实体类",dataType = "Person",required = true)
  16. @PostMapping("add")
  17. public int addPerson(@RequestBody Person person){
  18. if(StringUtils.isEmpty(person)){
  19. return -1;
  20. }
  21. return 1;
  22. }
  23. @ApiOperation(value = "更新用户信息",notes = "根据用户实体更新用户信息")
  24. @ApiImplicitParam(name = "person",value = "用户实体类",dataType = "Person",required = true)
  25. @PutMapping("update")
  26. public int updatePerson(@RequestBody Person person){
  27. if(StringUtils.isEmpty(person)){
  28. return -1;
  29. }
  30. return 1;
  31. }
  32. @ApiOperation(value = "删除用户信息",notes = "根据用户名删除用户信息")
  33. @ApiImplicitParam(name = "name",value = "用户姓名",dataType = "String",required = true)
  34. @DeleteMapping("/{name}")
  35. public int deletePerson(@PathVariable(name = "name") String name){
  36. if(StringUtils.isEmpty(name)){
  37. return -1;
  38. }
  39. return 1;
  40. }
  41. }

三 swagger文档简介

我就直接用图来表示了,这样看着也更加直观

swagger2注解对应到文档上的表现形式如上。swagger2支持在线调试,打开某个具体的接口,根据提示填写对应的参数,点击发送就可返回响应结果。

此是spring-boot-route系列的第五篇文章,这个系列的文章都比较简单,主要目的就是为了帮助初次接触Spring Boot 的同学有一个系统的认识。本文已收录至我的github,欢迎各位小伙伴star

githubhttps://github.com/binzh303/spring-boot-route

点关注、不迷路

如果觉得文章不错,欢迎关注点赞收藏,你们的支持是我创作的动力,感谢大家。

如果文章写的有问题,请不要吝啬,欢迎留言指出,我会及时核查修改。

如果你还想更加深入的了解我,可以微信搜索「Java旅途」进行关注。回复「1024」即可获得学习视频及精美电子书。每天7:30准时推送技术文章,让你的上班路不在孤独,而且每月还有送书活动,助你提升硬实力!

spring-boot-route(五)整合Swagger生成接口文档的更多相关文章

  1. spring-boot-route(六)整合JApiDocs生成接口文档

    上一篇文章中介绍了使用Swagger生成接口文档,非常方便,功能也十分强大.如果非要说Swaager有什么缺点,想必就是注解写起来比较麻烦.如果我说有一款不用写注解,就可以生成文档的工具,你心动了吗? ...

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

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

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

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

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

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

  5. asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档

    asp.net core中使用Swashbuckle.AspNetCore(swagger)生成接口文档 Swashbuckle.AspNetCore:swagger的asp.net core实现 项 ...

  6. SpringBoot整合Swagger3生成接口文档

    前后端分离的项目,接口文档的存在十分重要.与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低.与swagger2相比新版的swagg ...

  7. Django使用swagger生成接口文档

    参考博客:Django接入Swagger,生成Swagger接口文档-操作解析 Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.总体目标是使客户端和文 ...

  8. Go语言使用swagger生成接口文档

    swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言.Swagger与一组开源软件工具一起使用,以设计.构建.记录和使用RESTful Web服 ...

  9. Spring Boot 集成 Swagger生成接口文档

    目的: Swagger是什么 Swagger的优点 Swagger的使用 Swagger是什么 官网(https://swagger.io/) Swagger 是一个规范和完整的框架,用于生成.描述. ...

随机推荐

  1. Golang | 简介channel常见用法,完成goroutin通信

    今天是golang专题的第14篇文章,大家可以点击上方的专辑回顾之前的内容. 今天我们来看看golang当中另一个很重要的概念--信道.我们之前介绍goroutine的时候曾经提过一个问题,当我们启动 ...

  2. solrcloud集群版的搭建

    说在前面的话 之前我们了解到了solr的搭建,我们的solr是搭建在tomcat上面的,由于tomcat并不能过多的承受访问的压力,因此就带来了solrcloud的时代.也就是solr集群. 本次配置 ...

  3. linux 下分别使用pip2、pip3

    上次切换了Python2和Python3.但是Python3并没有pip,所有在Python3下不能安装包. 下面实现在Python3 下安装pip3 1,首先安装setuptools wget -- ...

  4. 浅谈 FTP、FTPS 与 SFTP

    无论是网盘还是云存储,上传都是一项很简单的操作.那些便捷好用的上传整理工具所用的 FTP 协议到底是什么意义,繁杂的模式又有何区别? 二狗子最近搭建了一个图片分享网站,每天都有好多人在他的网站上传许多 ...

  5. Android开发之数组类的面试题目,android工程师java程序员必备

    1,定义一个长度为5的数组 int [] arr=new int[5]; 2,写出静态初始化一个数组的方法 int [] arr={1,2,3,4}; 3,写出可变参数的使用规则    1,只能做为方 ...

  6. POJ-1001-Exponentiation(高精度大数)

    Problems involving the computation of exact values of very large magnitude and precision are common. ...

  7. BootStrap-select插件动态添加option无法显示

    问题描述: 在使用bootstrap-select插件时出现下拉框无法显示动态追加的option,经过查看element元素发现,select标签已经append进去了所需的option选项,但是页面 ...

  8. Jmeter4.0安装教程

    1. 检查安装环境 1.1 Jdk要求 JDK版本:1.6+ 1.2 检查是否安装JDK win  +  R  快捷键打开运行,输入cmd 打开面板,在面板中输入  java -version,出现如 ...

  9. 仅显示sessionid,servername,serverport的一个springboot小程序

    下载地址:https://files.cnblogs.com/files/xiandedanteng/sessionid20191227-1.zip --END-- 2019-12-2710:07

  10. 打包下载zip代码

    /// <summary> /// 下载文件 /// </summary> /// <param name="dt">需要处理的数据集</ ...