SWAGGER DESC

本文详细介绍了swagger注释API,包含注释汇总,如@ApiModelProperty、@Api等的使用位置,还说明了@RequestMapping注解的推荐配置。同时对@ApiImplicitParam的属性,如paramType、dataType等进行解释,并给出paramType不同取值(path、body、header、form)的示例详解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

swagger注释API详细说明
API详细说明
注释汇总

[table]
|作用范围 API 使用位置|
|对象属性 @ApiModelProperty 用在出入参数对象的字段上|
|协议集描述 @Api 用于controller类上|
|协议描述 @ApiOperation 用在controller的方法上|
|Response集 @ApiResponses 用在controller的方法上|
|Response @ApiResponse 用在 @ApiResponses里边|
|非对象参数集 @ApiImplicitParams 用在controller的方法上|
|非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边|
|描述返回对象的意义 @ApiModel 用在返回对象类上|
[/table]
@RequestMapping此注解的推荐配置
value
method
produces

示例:
@ApiOperation("信息软删除")
@ApiResponses({ @ApiResponse(code = CommonStatus.OK, message = "操作成功"),
@ApiResponse(code = CommonStatus.EXCEPTION, message = "服务器内部异常"),
@ApiResponse(code = CommonStatus.FORBIDDEN, message = "权限不足") })
@ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "id", value = "信息id", required = true) })
@RequestMapping(value = "/remove.json", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public RestfulProtocol remove(Long id) {
@ApiModelProperty(value = "标题")
private String title;
@ApiImplicitParam
[table]
|属性 取值 作用|
|paramType 查询参数类型|
|path 以地址的形式提交数据|
|query 直接跟参数完成自动映射赋值|
|body 以流的形式提交 仅支持POST|
|header 参数在request headers 里边提交|
|form 以form表单的形式提交 仅支持POST|
|dataType 参数的数据类型 只作为标志说明,并没有实际验证|
|Long |
|String |
|name 接收参数名|
|value 接收参数的意义描述|
|required 参数是否必填|
|true 必填|
|false 非必填|
|defaultValue 默认值|
|paramType 示例详解|
[/table]
path
@RequestMapping(value = "/findById1/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)

@PathVariable(name = "id") Long id
body
@ApiImplicitParams({ @ApiImplicitParam(paramType = "body", dataType = "MessageParam", name = "param", value = "信息参数", required = true) })
@RequestMapping(value = "/findById3", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)

@RequestBody MessageParam param

提交的参数是这个对象的一个json,然后会自动解析到对应的字段上去,也可以通过流的形式接收当前的请求数据,但是这个和上面的接收方式仅能使用一个(用@RequestBody之后流就会关闭了)
header
@ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "Long", name = "id", value = "信息id", required = true) })

String idstr = request.getHeader("id");
if (StringUtils.isNumeric(idstr)) {
id = Long.parseLong(idstr);
}
Form
@ApiImplicitParams({ @ApiImplicitParam(paramType = "form", dataType = "Long", name = "id", value = "信息id", required = true) })
@RequestMapping(value = "/findById5", method = RequestMethod.POST


[url]https://blog.youkuaiyun.com/xupeng874395012/article/details/68946676[/url]
### 如何通过Swagger生成带有排序功能的API文档 为了实现通过Swagger生成支持排序功能的API文档,可以按照以下方法设计和配置OpenAPI规范。首先,在定义API接口时,需要明确哪些字段允许进行排序操作,并将其作为查询数的一部分。 #### 定义支持排序的API路径 在OpenAPI规范中,可以通过`parameters`部分来指定可选的排序数。例如: ```yaml paths: /items: get: summary: Retrieve a list of items with optional sorting. parameters: - name: sort_by in: query description: Field by which to sort the results (e.g., 'name', 'created_at'). required: false schema: type: string - name: order in: query description: Sorting order ('asc' or 'desc'). Defaults to 'asc'. required: false schema: type: string enum: ['asc', 'desc'] responses: '200': description: A JSON array of items sorted as specified. ``` 上述代码片段展示了如何为GET请求添加两个查询数:`sort_by` 和 `order`[^1]。这些数用于控制返回数据的排序方式。 #### 配置响应模型以反映排序行为 为了让开发者清楚地知道API支持排序功能,可以在响应描述中提及此特性。例如: ```yaml responses: '200': description: Successful response containing an array of items, optionally sorted based on provided parameters. content: application/json: schema: type: array items: $ref: '#/components/schemas/Item' ``` 这里提到如果提供了`sort_by`和`order`数,则结果会按相应顺序排列[^2]。 #### 使用高效的序列化库优化性能 当处理大量数据并应用排序逻辑时,考虑使用高效的数据序列化工具可以帮助提升整体效率。一些推荐的选择包括但不限于FlatBuffers、FST以及Kryo等高性能框架[^3]。虽然它们主要用于Java环境下的对象图序列化,但对于其他语言也有相应的解决方案可供考。 最后提醒一点,确保测试阶段充分验证不同组合条件下(比如升序降序切换或者针对多个字段连续调用)的行为表现是否符合预期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值