Spring Boot使用OpenAPI规范

2020-10-23 11:28:58 浏览数 (1)

在WEB领域里面,随着前后端分离,后端的HTTP接口便需要去维护一份大而全的Rest API,一个比较靠谱的文档工具是必不可少的。

迭代中的系统,随着时间的推移,以前提供出去的接口,很快就会发生变化。同时去维护代码和接口文档,意味着工作量的增加,或者种种其他原因,导致接口和文档的不同步是家常便饭的事情。

那么如果文档是由代码注释或者类似的方式生成,便可以在一定程度上避免这样的事情。常规的方案就是使用OpenAPI规范,它的前身即大名鼎鼎的Swagger。

如何使用

首先引入依赖

代码语言:javascript复制
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.4.7</version>
  </dependency>
</dependencies>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.1.3.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

启动后访问地址 ip:port/swagger-ui/index.html , 可以看到一个Swagge UI的界面,即可正常进行使用了,默认打开示例。

注解

OpenAPI 是Swagger v3 ,所使用的注解跟原来的有所区别。主要的一些注解如以下表格

OpenAPI

swagger

作用

@Tag

@Api

标签,表示请求类的作用

@Operation

@ApiOperation

描述请求方法

@Parameter

@ApiParam

描述接口参数

@Schema

@ApiModel

描述模型

@ApiResponse

@ApiResponse

描述返回的结果,包含返回码,信息等

交互式文档

ip:port/swagger-ui/index.html 开启的时候使用的是默认示例。当我们给自己的接口写上加上OpenAPI的注解后,可以在Swagger界面的Explore框里面填入/v3/api-docs/点击explore按钮来查看。

点开其中一个方法,有具体的描述,方法的用处,参数和返回等上述注解中所定义的内容。

点击右上角的【try it out】按钮,则可以出现一个模拟请求的交互界面。

填入对应的参数,然后点击【Execute】按钮即可发起请求,然后在Responses看到对应的结果。同时也有Curl和Request URL给出,可以比较方便地复制到其他地方使用。

这种交互性的文档对于开发者来说比较有用,可以不用再自己去装一个postman来做模拟请求。

对于有条件的团队,有自己的文档平台,那么可以通过 ip:port//v3/api-docs/ 来获取文档的内容,Swagger也只是提供了一个交互界面来呈现文档。

结语

OpenAPI规范,定义了一套文档标准,并提供了默认实现以及方便使用的交互性文档界面。缺点是注解对应用的侵入性比较大,使用过程中亦需要关注安全问题。

0 人点赞