SpringBoot整合Swagger和Actuator (2)

Swagger主要的使用就是在控制层这块,它是通过一些注解来为接口提供API文档。下述的代码中主要使用的注解为这两个@ApiOperation和 @ApiImplicitParam这两个,@ApiOperation注解来给API增加说明并通过@ApiImplicitParams注解来给参数增加说明,其中 value 是标题,notes是详细说明。

下列是Swagger的一些注解说明,更详细的可以查看官方的wiki文档。

@Api:将类标记为Swagger资源。

@ApiImplicitParam:表示API操作中的单个参数。

@ApiImplicitParams:一个包装器,允许列出多个ApiImplicitParam对象。

@ApiModel:提供有关Swagger模型的其他信息,比如描述POJO对象。

@ApiModelProperty: 添加和操作模型属性的数据。

@ApiOperation: 描述针对特定路径的操作或通常是HTTP方法。

@ApiParam: 为操作参数添加其他元数据。

@ApiResponse: 描述操作的可能响应。

@ApiResponses: 一个包装器,允许列出多个ApiResponse对象。

@Authorization: 声明要在资源或操作上使用的授权方案。

@AuthorizationScope: 描述OAuth2授权范围。

@ResponseHeader: 表示可以作为响应的一部分提供的标头。

@ApiProperty: 描述POJO对象中的属性值。

@ApiError : 接口错误所返回的信息

...

官方wiki文档地址:
https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations

控制层代码如下:

@RestController @RequestMapping(value = "/api") public class UserRestController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @ApiOperation(value="创建用户", notes="根据User对象创建用户") @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") @PostMapping("/user") public boolean insert(@RequestBody User user) { logger.info("开始新增用户信息!请求参数:{}",user); return true; } @ApiOperation(value="更新用户", notes="根据User对象更新用户") @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") @PutMapping("/user") public boolean update(@RequestBody User user) { logger.info("开始更新用户信息!请求参数:{}",user); return true; } @ApiOperation(value="删除用户", notes="根据User对象删除用户") @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") @DeleteMapping("/user") public boolean delete(@RequestBody User user) { logger.info("开始删除用户信息!请求参数:{}",user); return true; } @ApiOperation(value="获取用户列表", notes="根据User对象查询用户信息") @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User") @GetMapping("/user") public User findByUser(User user) { logger.info("开始查询用户列表,请求参数:{}",user); User user2 =new User(); user2.setId(1L); user2.setAge(18); user2.setName("xuwujing"); return user2; } }

App 入口

和普通的SpringBoot项目基本一样。

代码如下:

@SpringBootApplication public class SwaggerApplication { private static final Logger logger = LoggerFactory.getLogger(SwaggerApplication.class); public static void main(String[] args) { SpringApplication.run(SwaggerApplication.class, args); logger.info("Swagger程序启动成功!"); } } 功能测试

我们成功启动该程序之后,在浏览器上输入::8183/swagger-ui.html, 就可以看到Swagger的界面了。

界面的示例图如下:

SpringBoot整合Swagger和Actuator

由于Swagger的操作主要是在界面操作,因此用图片会更加有说服力。

使用GET请求测试示例图如下:

SpringBoot整合Swagger和Actuator

SpringBoot整合Actuator

说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码。

Actuator介绍

从本质上讲,Actuator为我们的应用程序带来了生产就绪功能。通过这种依赖关系监控我们的应用程序,收集指标,了解流量或数据库的状态变得微不足道。这个库的主要好处是我们可以获得生产级工具,而无需自己实际实现这些功能。Actuator主要用于公开有关正在运行的应用程序的运行信息 - 运行状况,指标,信息,转储,env等。它使用HTTP端点或JMX bean来使我们能够与它进行交互。一旦这个依赖关系在类路径上,就可以开箱即用几个端点。与大多数Spring模块一样,我们可以通过多种方式轻松配置或扩展它。

注意事项

Actuator的1.x版本和2.x版本差别很大,本文介绍的是1.x版本。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssfxz.html