1.Swagger简介

  Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

2.Spring Boot 集成Swagger

一、修改pom.xml,添加maven依赖

        <!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency> <dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>

二、添加Swagger配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig { @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("指定扫描的包路径"))
.paths(PathSelectors.any())
.build();
} private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("大标题")
.description("description")
.termsOfServiceUrl("http://路径.com")
.contact(new Contact("name", "http://name.com", "name@name.com"))//作者
.version("1.0")//版本
.build();
} @SuppressWarnings("unused")
private Predicate<String> petstorePaths() {
return or(
regex("/user.*"),
regex("/cities.*")
);
} }

  @Configuration让Spring来加载该类配置

  @EnableSwagger2启用Swagger2

  通过createRestApi函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,本例采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)

3.添加文档内容

  在API上做一些声明:在Controller类中添加相关的swagger注解。但是有一个要求,这个Controller类一定要让上一步配置类的@ComponentScan扫描到

  swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。

  swagger注释API详细说明

作用范围 API 使用位置
对象属性 @ApiModelProperty 用在出入参数对象的字段上
协议集描述 @Api 用于controller类上
协议描述 @ApiOperation 用在controller的方法上
Response集 @ApiResponses 用在controller的方法上
Response @ApiResponse 用在 @ApiResponses里边
非对象参数集 @ApiImplicitParams 用在controller的方法上
非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边
描述返回对象的意义 @ApiModel 用在返回对象类上
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiParamImplicitL:一个请求参数
@ApiParamsImplicit 多个请求参数
@Api(tags={"积分接口"})
@RequestMapping("credit")
@RestController
public class CreidtController { @Autowired
private CreditService creditService; @Autowired
private ConsulClient consulClient; private static Logger log = LoggerFactory.getLogger(CreidtController.class); /**
* @param id
* @return User
*/
@ApiOperation(value = "根据用户ID获取可用积分", notes="包含各种类型积分")
@ApiImplicitParam(name = "id", value = "编号", required = true, paramType="path")
@GetMapping("{id}")
public Credit getuser(@PathVariable String id) {
return null;
} }

  完成上述代码添加上,启动Spring Boot程序,访问:http://localhost:8080/swagger-ui.html

  就能看到前文所展示的RESTful API的页面。我们可以再点开具体的API请求,以POST类型的/users请求为例,可找到上述代码中我们配置的Notes信息以及参数user的描述信息。

4.API文档访问与调试

  在上图请求的页面中,我们看到user的Value是个输入框?是的,Swagger除了查看接口功能外,还提供了调试测试功能,我们可以点击上图中右侧的Model Schema(黄色区域:它指明了User的数据结构),此时Value中就有了user对象的模板,我们只需要稍适修改,点击下方“Try it out!”按钮,即可完成了一次请求调用!

此时,你也可以通过几个GET请求来验证之前的POST请求是否正确。

参考:https://blog.csdn.net/Amethyst128/article/details/72877660
   swagger.io

最新文章

  1. android 4.4/5.1上使用aar的问题
  2. 理解Java虚拟机体系结构
  3. (转载)关于web端功能测试的测试方向
  4. Android获取焦点所在控件
  5. Windows 下的.NET+ Memcached安装
  6. jQuery类库的设计
  7. ejabberd、jabber、jabberd、xmpp辨析
  8. ThinkPHP验证码类
  9. Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
  10. jqueryEasyUI列表
  11. ios - 如何获取app上的数据
  12. C# 基于密码的身份验证报错问题System.Net.NetworkCredential
  13. &quot;《算法导论》之‘树’&quot;:二叉查找树
  14. 日常踩坑笔记:spring的context:property-placeholder标签
  15. laravel配置路由除了 / 都是404解决办法
  16. linux基本之一
  17. Linux用户态程序计时方式详解
  18. 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版(转)
  19. python-GUI,生成ssn
  20. test20190324 树

热门文章

  1. BZOJ4037:[HAOI2015]数字串拆分——题解
  2. 域hash值破解的总结经验
  3. Linux系统启动详解(三)
  4. 「转」图像算法---白平衡AWB
  5. kubernetes 之ingress
  6. python【数据类型:集合】
  7. 百度定位api 定位不准修正
  8. Java基础-面向对象第三大特性之多态(polymorphism )
  9. SQL Server 2008定期的备份数据库--差异+完整
  10. day7 方法及基础知识运用