当前位置: 首页 > article >正文

Swagger学习⑯——@ApiResponses注解

介绍

@ApiResponses 是 Swagger/OpenAPI 注解库中的一个注解,用于在 Java 应用程序中为 API 方法定义多个响应。它是 @ApiResponse 注解的容器注解,允许你为一个 API 方法指定多个可能的响应。

基本用法

@ApiResponses 通常与 @ApiResponse 一起使用,用于描述一个 API 方法可能返回的不同 HTTP 状态码及其对应的响应信息。

源代码

package io.swagger.v3.oas.annotations.responses;

import io.swagger.v3.oas.annotations.extensions.Extension;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ApiResponses {
    ApiResponse[] value() default {};

    Extension[] extensions() default {};
}

注解属性

  • ApiResponse[] value() default {};:
    这是 @ApiResponses 的主要属性,用于指定一组 @ApiResponse 注解。

    • value() 是默认属性,可以省略属性名直接赋值。

    • default {} 表示如果没有显式赋值,默认值为空数组。

  • Extension[] extensions() default {};:
    这是 @ApiResponses 的扩展属性,用于支持 OpenAPI 规范的扩展功能。

    • extensions() 是属性名,可以通过 extensions = {...} 的方式赋值。

    • default {} 表示如果没有显式赋值,默认值为空数组。

示例代码

import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;

@ApiResponses(value = {
    @ApiResponse(
        responseCode = "200",
        description = "请求成功",
        content = @Content(
            mediaType = "application/json",
            schema = @Schema(implementation = DemoResponse.class)
        )
    ),
    @ApiResponse(
        responseCode = "400",
        description = "请求参数错误",
        content = @Content(
            mediaType = "application/json",
            schema = @Schema(implementation = ErrorResponse.class)
        )
    ),
    @ApiResponse(
        responseCode = "404",
        description = "资源未找到"
    )
})
public ResponseEntity<DemoResponse> getResource() {
    // 方法实现
}




http://www.kler.cn/a/488753.html

相关文章:

  • 【工业自动化摄像头移动机器视觉】
  • 了解模2除法:原理与应用
  • 微信小程序实现登录注册
  • 【爬虫】单个网站链接爬取文献数据:标题、摘要、作者等信息
  • HTML - <script>,<noscript>
  • 【MySQL系列文章】Linux环境下安装部署MySQL
  • 【微服务与K8S】
  • 【Rust自学】11.5. 在测试中使用Result<T, E>
  • npm : 无法加载文件 D:\SoftFile\npm.ps1,因为在此系统上禁止运行脚本。
  • php反序列化 ctf例题演示 框架安全(TP,Yii,Laravel) phpggc生成框架利用pop
  • STM32 拓展 RTC案例1:使用闹钟唤醒待机模式 (HAL库)
  • [ LeetCode 75 ] 283 移动零(JavaScript)
  • mysql -> 达梦数据迁移(mbp大小写问题兼容)
  • Ubuntu | PostgreSQL | 解决 ERROR: `xmllint` is missing on your system.
  • 学习第六十四行
  • 创建一个Spring Boot项目
  • 使用PVE快速创建虚拟机集群并搭建docker环境
  • 安全运维管理 10.1环境管理
  • GPU算力平台|在GPU算力平台部署LLama3大模型的详细教程
  • system securiry: supervisor password required
  • 在 Visual Studio Code 中使用 qmake 构建和调试 Qt 项目
  • python调用window库全屏截图生成bmp位图学习
  • TrustRAG:增强RAG系统鲁棒性与可信度的创新框架
  • 儿童玩具加拿大SOR/2011-17测试安全标准
  • Transformer:深度学习的变革力量
  • ffmpeg 常用命令 案例