Swagger 注解 @ApiParam 的用法

@ApiParam 注解用于给控制器类方法的参数添加元数据信息,这些信息会在 Swagger 生成的 API 文档中显示。它通常用于描述参数的含义、作用、参数类型、默认值等,方便使用者更好地理解接口参数。

用 Apifox,节省研发团队的每一分钟

Swagger 注解 @ApiParam 的用法

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

@ApiParam 注解用于给控制器类方法的参数添加元数据信息,这些信息会在 Swagger 生成的 API 文档中显示。它通常用于描述参数的含义、作用、参数类型、默认值等,方便使用者更好地理解接口参数。

Swagger 注解 @ApiParam 的用法
Swagger

@ApiParam 注解使用场景


@ApiParam 注解一般适合在以下场景中运用:

  • 接口参数较多,需要通过注解描述每个参数的作用
  • 参数名称无法直观表达参数的作用,需要额外描述
  • 参数为非基本类型(如自定义对象),需要描述参数类型信息
  • 参数有默认值,需要在文档中说明默认值
  • 参数可选或必填,需要提示用户

@ApiParam 注解用法介绍


@ApiParam 注解的常用属性如下:

属性类型默认值说明
nameString参数名
valueString参数的描述信息
requiredbooleanFALSE是否必填参数
true - 必填
false - 非必填
defaultValueString参数的默认值
allowableValuesString参数的可选值范围,多个值用逗号分隔
accessString参数的访问类型
access = "internal" 内部参数
access = "external" 外部参数
allowMultiplebooleanFALSE是否允许重复参数
true - 允许
false - 不允许
hiddenbooleanFALSE是否隐藏参数
true - 隐藏
false - 不隐藏
exampleString举例参数值
dataTypeString参数的数据类型
paramTypeString参数类型
paramType = "query" 查询参数
paramType = "path" 路径参数
paramType = "body" 请求体参数
paramType = "header" 头部参数

实践案例

@ApiOperation("用户注册")
@PostMapping("/register")
public Resp register(
    @ApiParam(name = "username", value = "用户名", required = true)
    String username,

    @ApiParam(name = "password", value = "密码", required = true, example = "123456")
    String password,

    @ApiParam(name = "age", value = "年龄",defaultValue = "18")
    int age,

    @ApiParam(name = "hobbies", value = "爱好", allowMultiple = true)
    List<String> hobbies) {

  // 方法实现

}

如上代码,给出了不同属性的使用示例,在 Swagger 文档中会生成相应的描述信息。

注意事项

  • @ApiParam 只能加在方法的参数上,不能加在类字段上。
  • 同一个参数可以使用多个 @ApiParam,后面的注解信息会覆盖前面的信息。
  • @ApiParam 不会影响代码运行,仅用于生成文档。
  • 不同的 Swagger 解析工具,对 @ApiParam 支持可能有差异。

常见问题

Q:Swagger 解析后,文档没有显示 @ApiParam 注解信息?

A:检查是否正确添加了 @ApiOperation 注解,@ApiParam 必须在 @ApiOperation 修饰的方法中才会生效。



Q:修改了 @ApiParam 信息,但是文档没有更新?

A:清除浏览器缓存,强制刷新文档页面。也可以重新启动服务,确保文档获取最新的注解信息。

Swagger 和 Apifox 整合

Swagger 管理接口有时很不方便,缺乏一定的安全性和团队间的分享协作,所以我更推荐使用 ApifoxIDEA 插件。你可以在 IDEA 中自动同步 Swagger 注解到 Apifox,一键生成接口文档,多端同步,非常方便测试和维护,这样就可以迅速分享 API 给其他小伙伴。

Apifox 的 IDEA 插件
Apifox 的 IDEA 插件

Apifox 是一个比 Postman 更强大的接口测试工具,Apifox = Postman + Swagger + Mock + JMeter,Apifox 支持调试 http(s)、WebSocket、Socket、gRPC、Dubbo 等协议的接口,并且集成了 IDEA 插件


Apifox 的 IDEA 插件可以自动解析代码注释,并基于 Javadoc、KDoc 和 ScalaDoc 生成 API 文档。通过 IntelliJ IDEA 的 Apifox Helper 插件,开发人员可以在不切换工具的情况下将他们的文档与 Apifox 项目同步。

Apifox Helper
Apifox Helper


当在 IDEA 项目中有接口信息变动,只需右键点击「 Upload to Apifox」一键即可完成同步,无需奔走相告。团队成员可在 Apifox 中看到同步后的最新内容。

Apifox 的 IDEA 插件一键同步接口
Apifox 的 IDEA 插件一键同步接口


现在出发去 JetBrains 插件市场 下载试试吧!或直接在 IDEA 内 「plugin」入口直接搜索 Apifox Helper

Apifox
Apifox 接口调试界面

知识扩展:



参考链接:

Swagger 注解列表:https://swagger.io/docs/specification/2-0/annotations/

SpringFox@ApiParam:https://springfox.github.io/springfox/docs/snapshot/#api-param-annotation