程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入门

  • 后端手册

    • 分页实现
    • 导入导出功能
    • 文件上传与下载
    • 权限注解实现
    • 事务管理详解
    • 全局异常处理
    • 参数验证详解
    • 数据脱敏详解
    • 系统日志功能实现
    • 数据权限控制
    • 多数据源实现
    • 代码生成功能
    • 定时任务实现
    • 系统接口文档生成
      • 一、集成 Swagger 生成接口文档
        • 1. 在控制器类上添加 @Api 注解
        • 2. 在方法上使用 @ApiOperation 注解
        • 3. 在方法参数上使用 @ApiParam 注解
        • 4. 配置响应信息 @ApiResponses 与 @ApiResponse
        • 5. 自定义响应头 @ResponseHeader
      • 二、Swagger API 详细说明
        • 1. @Api 注解
        • 2. @ApiOperation 注解
        • 3. @ApiParam 注解
        • 4. @ApiResponse 和 @ApiResponses 注解
        • 5. @ResponseHeader 注解
      • 三、接口文档的生成与测试
        • 1. 接口文档的生成
        • 2. 接口测试与调试
      • 四、总结
    • 防重复提交实现
    • 国际化支持
    • 新建子模块
  • 前端手册

  • 组件文档

  • 数据库分析

  • 若依框架
  • 后端手册
scholar
2024-08-31
目录

系统接口文档生成

# 系统接口文档生成与管理

在现代Web应用开发中,接口文档是前后端联调的重要环节。然而,手动维护接口文档通常耗时且容易出错。为了提高开发效率并减少错误,若依框架通过集成 Swagger 实现了自动生成接口文档的功能。只需在代码中添加一些注解,就可以生成准确且易于维护的API文档。

# 一、集成 Swagger 生成接口文档

Swagger 是一个强大的工具,可以帮助我们自动生成 API 文档。通过在代码中添加注解,可以让 Swagger 自动识别并生成接口文档。

# 1. 在控制器类上添加 @Api 注解

@Api 注解用于描述整个控制器类及其包含的接口,通常标记在 Controller 类上。

import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 参数配置控制器
 * 
 * @author ruoyi
 */
@Api(value = "参数配置", tags = "参数配置相关接口")
@RestController
@RequestMapping("/system/config")
public class ConfigController {
    // 控制器方法
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • value:用于标识该控制器的功能模块。
  • tags:用于分组和分类接口,便于前端查找和使用。

# 2. 在方法上使用 @ApiOperation 注解

@ApiOperation 注解用于描述具体接口方法的功能和用途。

import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 查询参数列表
 * 
 * @param config 配置参数
 * @return 参数列表
 */
@ApiOperation(value = "查询参数列表", notes = "根据条件查询参数配置列表")
@GetMapping("/list")
@ResponseBody
public TableDataInfo list(Config config) {
    startPage(); // 启用分页
    List<Config> list = configService.selectConfigList(config);
    return getDataTable(list); // 返回分页数据
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • value:接口的简要说明。
  • notes:接口的详细描述,补充信息。

# 3. 在方法参数上使用 @ApiParam 注解

@ApiParam 注解用于描述方法的参数,通常用于标识请求参数的用途和是否必填。

import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 添加新参数配置
 * 
 * @param config 参数配置对象
 * @return 操作结果
 */
@ApiOperation(value = "添加新参数配置")
@PostMapping("/add")
@ResponseBody
public AjaxResult add(@ApiParam(value = "参数配置对象", required = true) @RequestBody Config config) {
    return toAjax(configService.insertConfig(config));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • value:参数的描述信息。
  • required:是否为必填项。

# 4. 配置响应信息 @ApiResponses 与 @ApiResponse

@ApiResponses 注解用于描述方法可能返回的多个响应结果,而 @ApiResponse 注解用于描述单个响应的状态码和信息。

import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;

/**
 * 查询参数详情
 * 
 * @param configId 参数ID
 * @return 参数详情
 */
@ApiOperation(value = "查询参数详情", notes = "根据参数ID查询具体的参数配置")
@ApiResponses({
    @ApiResponse(code = 200, message = "成功返回参数详情"),
    @ApiResponse(code = 400, message = "请求参数无效"),
    @ApiResponse(code = 404, message = "未找到该参数")
})
@GetMapping("/get/{configId}")
@ResponseBody
public AjaxResult getConfig(@PathVariable Long configId) {
    return AjaxResult.success(configService.selectConfigById(configId));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  • code:HTTP状态码。
  • message:状态码对应的描述信息。

# 5. 自定义响应头 @ResponseHeader

在某些场景下,接口可能需要返回自定义的响应头信息,可以使用 @ResponseHeader 注解进行配置。

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.ResponseHeader;

/**
 * 获取配置信息,并返回自定义响应头
 * 
 * @param configId 参数ID
 * @return 配置信息
 */
@ApiOperation(value = "获取配置信息,并返回自定义响应头")
@ResponseHeader(name = "X-Custom-Header", description = "自定义响应头")
@GetMapping("/customHeader/{configId}")
@ResponseBody
public AjaxResult getConfigWithHeader(@PathVariable Long configId) {
    return AjaxResult.success(configService.selectConfigById(configId));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 二、Swagger API 详细说明

# 1. @Api 注解

  • 作用范围: 标注在 Controller 类上,用于描述整个控制器的功能。
  • 常用属性:
    • value:描述控制器的功能模块。
    • tags:对API资源进行分组。
    • description:详细描述控制器的功能。
    • hidden:设置为 true 则在文档中隐藏此控制器。

# 2. @ApiOperation 注解

  • 作用范围: 标注在 Controller 的方法上,描述该接口的作用和功能。
  • 常用属性:
    • value:描述接口的简要功能。
    • notes:详细说明接口的具体用途和注意事项。
    • response:接口返回的对象类型。
    • hidden:设置为 true 则在文档中隐藏此接口。

# 3. @ApiParam 注解

  • 作用范围: 用于描述请求参数,标注在方法的参数上。
  • 常用属性:
    • name:参数名称。
    • value:参数的描述信息。
    • required:是否为必填项。
    • example:示例值。

# 4. @ApiResponse 和 @ApiResponses 注解

  • 作用范围: 标注在方法上,用于描述接口的响应状态和信息。
  • 常用属性:
    • code:HTTP状态码。
    • message:状态码对应的描述信息。
    • response:响应对象类型。

# 5. @ResponseHeader 注解

  • 作用范围: 用于描述响应头信息,标注在方法上。
  • 常用属性:
    • name:响应头名称。
    • description:描述响应头的用途。
    • response:响应头的类型。

# 三、接口文档的生成与测试

# 1. 接口文档的生成

在若依框架中,集成Swagger后,接口文档会自动生成。默认访问路径为:http://localhost:8080/swagger-ui.html。

通过Swagger UI,可以查看、测试所有API接口,包括请求参数、响应数据等信息。

# 2. 接口测试与调试

通过Swagger UI,开发者可以直接在浏览器中对接口进行测试和调试,发送请求并查看响应结果,大大提高了接口联调的效率。

# 四、总结

通过集成Swagger,若依框架在不增加额外工作量的情况下,为开发者提供了强大且易用的API文档生成和管理工具。只需在代码中添加注解,就可以自动生成完整的API文档,并通过Swagger UI提供接口测试功能,极大地简化了前后端联调的过程。

  • 自动化文档生成: 通过简单的注解配置,即可生成完整的API文档,减少了手动维护文档的工作量。
  • 便捷的接口测试: 通过Swagger UI,开发者可以直接在浏览器中对接口进行测试和调试。
  • 高效的开发流程: 自动生成的API文档确保了文档与代码的一致性,减少了因文档不准确导致的联调问题。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
定时任务实现
防重复提交实现

← 定时任务实现 防重复提交实现→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式