随着微服务架构体系的发展和应用, 为了前后端能够更好的集成与对接,同时为了项目的方便交付,每个项目都需要提供相应的API文档。

来源:PC端、微信端、H5端、移动端(安卓和IOS端)

传统的API文档编写存在以下几个痛点:

对API文档进行更新的时候,需要通知前端开发人员,导致文档更新交流不及时;

API接口返回信息不明确

大公司中肯定会有专门文档服务器对接口文档进行更新。

缺乏在线接口测试,通常需要使用相应的API测试工具,比如postman、SoapUI等

接口文档太多,不便于管理

为了解决传统API接口文档维护的问题,为了方便进行测试后台Restful接口并实现动态的更新,因而引入Swagger接口工具。

Swagger具有以下优点

1.功能丰富:支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能;

2.及时更新:开发过程中花一点写注释的时间,就可以及时的更新API文档,省心省力;

3.整合简单:通过添加pom依赖和简单配置,内嵌于应用中就可同时发布API接口文档界面,不需要部署独立服务。

  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>2.0.1.RELEASE</version>
  5. </parent>
  6. <!-- 管理依赖 -->
  7. <dependencyManagement>
  8. <dependencies>
  9. <dependency>
  10. <groupId>org.springframework.cloud</groupId>
  11. <artifactId>spring-cloud-dependencies</artifactId>
  12. <version>Finchley.M7</version>
  13. <type>pom</type>
  14. <scope>import</scope>
  15. </dependency>
  16. </dependencies>
  17. </dependencyManagement>
  18. <dependencies>
  19. <!-- SpringBoot整合Web组件 -->
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-web</artifactId>
  23. </dependency>
  24. <!-- SpringBoot整合eureka客户端 -->
  25. <dependency>
  26. <groupId>org.springframework.cloud</groupId>
  27. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  28. </dependency>
  29. <!-- swagger2 一个做ui 一个做提供接口的-->
  30. <dependency>
  31. <groupId>io.springfox</groupId>
  32. <artifactId>springfox-swagger2</artifactId>
  33. <version>2.8.0</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>io.springfox</groupId>
  37. <artifactId>springfox-swagger-ui</artifactId>
  38. <version>2.8.0</version>
  39. </dependency>
  40. </dependencies>
  41. <!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->
  42. <repositories>
  43. <repository>
  44. <id>spring-milestones</id>
  45. <name>Spring Milestones</name>
  46. <url>https://repo.spring.io/libs-milestone</url>
  47. <snapshots>
  48. <enabled>false</enabled>
  49. </snapshots>
  50. </repository>
  51. </repositories>

  

Controller:

  1. package com.toov5.api;
  2.  
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5.  
  6. import io.swagger.annotations.Api;
  7. import io.swagger.annotations.ApiOperation;
  8.  
  9. @Api("swaggerdemo控制器") //接口描述
  10. @RestController
  11. public class SwaggerController {
  12. @ApiOperation(value = "swagger演示接口") //具体描述
  13. @GetMapping("/swaggerIndex")
  14. public String swaggerIndex() {
  15.  
  16. return "swaggerIndex";
  17. }
  18. }

创建config包,并且贴入依赖:

  1. @Configuration
  2. @EnableSwagger2
  3. public class SwaggerConfig {
  4.  
  5. @Bean
  6. public Docket createRestApi() {
  7. return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
  8. // api扫包
  9. .apis(RequestHandlerSelectors.basePackage("com.itmayiedu.api")).paths(PathSelectors.any()).build();
  10. }
  11.  
  12. private ApiInfo apiInfo() {
  13. return new ApiInfoBuilder().title("Toov5|微服务电商系统").description("demo")
  14. .termsOfServiceUrl("http://www.itmayiedu.com")
  15. // .contact(contact)
  16. .version("1.0").build();
  17. }
  18.  
  19. }

yml:

  1. ###服务启动端口号
  2. server:
  3. port: 6060
  4. ###服务名称
  5. spring:
  6. application:
  7. name: springboot-swagger

访问:

传入参数型的接口:

  1. package com.toov5.api;
  2.  
  3. import org.aspectj.weaver.tools.Trace;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6.  
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiImplicitParam;
  9. import io.swagger.annotations.ApiOperation;
  10.  
  11. @Api("swaggerdemo控制器") //接口描述
  12. @RestController
  13. public class SwaggerController {
  14. @ApiOperation(value = "swagger演示接口") //具体描述
  15. @GetMapping("/swaggerIndex")
  16. public String swaggerIndex() {
  17.  
  18. return "swaggerIndex";
  19. }
  20.  
  21. @ApiOperation(value = "获取会员信息接口") //具体描述
  22. @ApiImplicitParam(name="userName",value="用户信息参数",required=true,dataType="String") //传入的参数 ,描述 , 必须传递true , 类型String
  23. @GetMapping("/getMembe")
  24. public String getMember(String userName) {
  25. System.out.println(userName);
  26. return "userName"+userName;
  27. }
  28.  
  29. }

点击try out

然后传入参数, excute执行一下

Spring Cloud之Swagger2 API接口管理的更多相关文章

  1. (五)整合 Swagger2 ,构建接口管理界面

    整合 Swagger2 ,构建接口管理界面 1.Swagger2简介 1.1 Swagger2优点 1.2 Swagger2常用注解 2.SpringBoot整合Swagger2 2.1 Swagee ...

  2. Swagger API接口管理

    介绍         Swagger API框架,用于管理项目中API接口,属当前最流行的API接口管理工具. Swagger功能强大,UI界面漂亮,支持在线测试等!         Swagger包 ...

  3. Flask框架学习笔记(API接口管理平台 V2.0)

    博主今天把API接口管理平台发布到github了,这次是更新一些功能 如支持本地数据库sqlite3.优化了数据结构 技术方面跟之前V1.0相同,只增加生产本地数据:但是为了支持层级的参数,修改了数据 ...

  4. Flask框架学习笔记(API接口管理平台 V1.0)

    今天博主终于完成了API接口管理平台,最后差的就是数据库的维护, 博主这里介绍下平台的设计原理,首先基于python,利用flask的web框架+bootstrap前端框架完成,先阶段完成了前台展示页 ...

  5. 谈谈如何用eoLinker管理各类API接口及分享API接口管理小技巧教程

    在前后端分离的开发模式下,前后端往往需要接口文档来进行交互.我的上一篇随笔中已经写到用传统的文档写接口时,由于需求经常变动,接口文档也会随之变动.一开始,某接口信息已经写入文档,但后期因为需求变动,发 ...

  6. 分享一个开源免费、目前最好的API接口管理平台----eoLinker

    一.概况 eoLinker 是目前业内领先.国内最大的在线 API 接口管理平台,提供自动生成 API 文档.API 自动化测试.Mock 测试.团队协作等功能,旨在解决由于前后端分离导致的开发效率低 ...

  7. Spring Cloud Feign 在调用接口类上,配置熔断 fallback后,输出异常

    Spring Cloud Feign 在调用接口类上,配置熔断 fallback后,出现请求异常时,会进入熔断处理,但是不会抛出异常信息. 经过以下配置,可以抛出异常: 将原有ErrorEncoder ...

  8. 使用YApi搭建API接口管理工具(docker安装)

    使用YApi搭建API接口管理工具(docker安装) 工具描述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布 ...

  9. spring cloud 集成 swagger2 构建Restful APIS 说明文档

    在Pom.xml文件中引用依赖 <dependencies> <dependency> <groupId>org.springframework.cloud< ...

随机推荐

  1. background API

    语法: background:bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial| ...

  2. centos root登录password 忘记解决的方法

    Centos系统 登陆root忘记password 解决方式: (1)开机启动系统,在进入linux系统之前按键Esc 进入例如以下界面:(须要注意:Centos是安装在虚拟机里面的话,须要将鼠标点进 ...

  3. java使用命令wsimport构建WebService客户端

    wsimport -d d: -keep -extension -p com.demo.client http://192.168.33.3//RECEPTIONws.ASMX?WSDL 客户端:在J ...

  4. [译]GLUT教程 - 整合代码4

    Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far IV 以下代码使用了位图字 ...

  5. 自动make工具--CMake

    http://www.cnblogs.com/lyq105/archive/2010/12/03/1895067.html http://www.linuxidc.com/Linux/2015-10/ ...

  6. Auto Layout之创建布局约束

    上篇文章给大家介绍了AutoLayout 的由来及OC中关于AutoLayout 的类.这篇文章将向大家介绍,在iOS 编程中怎样使用Auto Layout 构建布局约束. 创建布局约束 创建布局约束 ...

  7. 多媒体开发之--- live555 vs2010/vs2013下编译,使用,测试

    Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编 ...

  8. 自定义WPF ListBox的选择样式

    (下图:进行多项选择的ListBox) 首先介绍一种简单地方法:就是通过自定义SystemColors类的参数来自定义WPF ListBox选择颜色的,SystemColors的HighlightBr ...

  9. 批处理--md5校检

    @echo off rem 获取文件xx.zip的MD5 for /f "delims=" %%i in ('md5.exe xx.zip') do (set md5_var=%% ...

  10. 解决from lxml import etree 导入的时候,显示etree不存在

    问题: 当安装完lxml之后,发现使用 from lxml import etree  时,etree不可用 原因 :是lxml中没有etree包 解决: 去官网下载对应包:官网地址:http://l ...