Swagger注解-@ApiParam

本文深入讲解Swagger注解的使用,包括@ApiOperation、@ApiImplicitParams等,帮助开发者为REST接口添加详细元数据,提升API文档的清晰度和可用性。

Swagger注解-@Api
Swagger注解-@ApiOperation
Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
Swagger注解-@ApiModel 和 @ApiModelProperty
Swagger注解-@ApiResponses 和 @ApiResponse
Swagger注解-@ResponseHeader
Swagger注解-@ApiParam
Swagger注解-@Authorization 和 @AuthorizationScope
Swagger注解-@SwaggerDefinition
Swagger注解-@ExternalDocs
Springboot 集成 Swagger GitHub 地址


使用场景

在 Rest 接口上或 Rest 接口参数前边使用

概述

为 Rest 接口参数添加其它元数据(导入到 yapi 中不会被解析)

属性

属性名称数据类型默认值说明
nameString“”参数名称,参数名称将从 filed/method/parameter 名称中派生,但你可以覆盖它,路径参数必须始终命名为它们所代表的路径部分
valueString“”参数简单描述
defaultValueString“”描述参数默认值
allowableValuesString“”可接收参数值限制,有三种方式,取值列表,取值范围
requiredbooleanfalse是否为必传参数, false:非必传; true:必传
accessString“”参数过滤,请参阅:io.swagger.core.filter.SwaggerSpecFilter
allowMultiplebooleanfalse指定参数是否可以通过多次出现来接收多个值
hiddenbooleanfalse隐藏参数列表中的参数
exampleString“”非请求体(body)类型的单个参数示例
examplesExample@Example(value = @ExampleProperty(mediaType = “”, value = “”))参数示例,仅适用于请求体类型的请求
typeString“”添加覆盖检测到类型的功能
formatString“”添加提供自定义format格式的功能
allowEmptyValuebooleanfalse添加将格式设置为空的功能
readOnlybooleanfalse添加被指定为只读的能力
collectionFormatString“”添加使用 array 类型覆盖 collectionFormat 的功能

Swagger注解-@Api
Swagger注解-@ApiOperation
Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
Swagger注解-@ApiModel 和 @ApiModelProperty
Swagger注解-@ApiResponses 和 @ApiResponse
Swagger注解-@ResponseHeader
Swagger注解-@ApiParam
Swagger注解-@Authorization 和 @AuthorizationScope
Swagger注解-@SwaggerDefinition
Swagger注解-@ExternalDocs
Springboot 集成 Swagger GitHub 地址


<think>好的,我现在需要回答用户关于在Swagger3中正确使用@ApiParam注解的问题。用户希望了解具体的用法、示例以及参数说明。首先,我需要回顾一下Swagger3的基本知识,尤其是与注解相关的内容。 根据用户提供的引用资料,特别是引用[2]和[3],@ApiParam和@RequestParam有不同的用途。@ApiParam主要用于生成API文档,而@RequestParam用于处理HTTP请求参数。因此,在Swagger3中,@ApiParam的作用应该是描述接口参数的信息,帮助生成更清晰的文档。 接下来,我需要确认Swagger3中@ApiParam的用法是否与Swagger2有差异。引用[4]提到,虽然Swagger3和Swagger2在使用方式上有些小变动,但总体流程相似。因此,大部分参数应该保持一致,但需要检查是否有新增或弃用的属性。 用户需要示例和参数说明,我应该先给出一个基本的代码示例,展示如何在方法参数前添加@ApiParam注解。例如,在Spring Boot的Controller中,使用@ApiParam注解来描述一个查询参数,比如用户的姓名。然后,详细说明每个参数的意义,如name、value、required、example等。 同时,需要注意Swagger3是否引入了新的参数或者改变了某些属性的名称。例如,在Swagger2中,paramType用于指定参数类型的位置(如query、path等),而在Swagger3中是否需要调整?根据引用[3]中的示例,paramType的值是字符串,但可能需要使用更标准的类型,比如query、path等,可能需要确认正确的用法。 另外,是否需要结合其他注解,比如@Parameter(来自OpenAPI的注解)来替代@ApiParam?因为Swagger3是基于OpenAPI 3.0的,可能推荐使用新的注解。不过用户特别询问的是@ApiParam,所以可能仍需说明其在Swagger3中的使用方式,同时指出是否有替代方案。 还需要注意,Swagger3的依赖是否有所变化。比如,Spring Boot集成Swagger3可能需要不同的starter依赖,比如springdoc-openapi-ui,而不是原来的springfox。这可能影响注解的包路径,比如io.swagger.v3.oas.annotations而不是io.swagger.annotations。但用户的问题集中在注解的使用,而不是环境配置,所以可能需要简要提到包路径的变化,但主要关注注解参数。 总结步骤: 1. 说明@ApiParam的基本用途,与@RequestParam的区别。 2. 提供一个使用@ApiParam的代码示例,展示在方法参数上的应用。 3. 列举@ApiParam的常用参数及其作用,如name、value、required、example等。 4. 对比Swagger2和Swagger3中的差异,如果有的话。 5. 提示依赖变化和包路径的不同。 6. 生成相关问题,引导用户进一步学习。 需要确保回答结构清晰,步骤明确,参数说明详细,并且示例正确。同时,引用提供的资料来支持说明,比如引用[2]和[3]中的内容,确保信息准确。</think>在 Swagger 3 中,`@ApiParam` 注解用于描述接口参数的信息,帮助生成更清晰的 API 文档。以下是具体用法和参数说明: --- ### **1. 基本用法** `@ApiParam` 通常标注在控制器方法的参数上,结合 `@RequestParam` 或 `@PathVariable` 使用。例如: ```java @GetMapping("/user") public User getUser( @ApiParam(name = "name", value = "用户姓名", required = true, example = "张三") @RequestParam String name) { // 业务逻辑 } ``` --- ### **2. 核心参数说明** | 参数 | 说明 | 示例值 | |-------------|----------------------------------------------------------------------|-------------------------------| | `name` | 参数名称,需与代码中的变量名一致 | `name = "userId"` | | `value` | 参数的描述信息 | `value = "用户唯一ID"` | | `required` | 参数是否必填,默认为 `false` | `required = true` | | `example` | 示例值,展示在文档中 | `example = "1001"` | | `allowEmptyValue` | 是否允许空值,默认 `false` | `allowEmptyValue = true` | --- ### **3. 与 Swagger2 的区别** - **包路径变化**:Swagger3 的注解位于 `io.swagger.v3.oas.annotations` 包下,需确保依赖正确。例如: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> ``` - **兼容性**:Swagger3 兼容 OpenAPI 3.0 规范,但部分旧注解可能被弃用,推荐使用 `@Parameter`(功能更强大)[^4]。 --- ### **4. 注意事项** - **与 `@RequestParam` 的协作**:`@ApiParam` 仅用于文档生成,不处理请求逻辑,需配合 `@RequestParam` 或 `@PathVariable` 使用[^2]。 - **参数类型明确性**:若参数是复杂对象(如 JSON 请求体),应使用 `@RequestBody` 和 `@ApiModelProperty` 代替[^1]。 --- ### **示例场景** ```java @PostMapping("/update") public void updateUser( @ApiParam(name = "id", value = "用户ID", required = true, example = "1001") @RequestParam Long id, @ApiParam(name = "role", value = "用户角色", allowableValues = "admin, user", example = "admin") @RequestParam String role) { // 更新用户角色逻辑 } ``` 此示例会在 Swagger UI 中生成两个查询参数,分别描述 ID 和角色。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值