Swagger常用注解详解

Swagger是一个广泛使用的API文档工具,它可以根据代码自动生成API文档,并提供交互式的API测试界面。在Swagger中,注解不仅仅只是用来生成文档,还能够控制API的行为,比如控制参数的校验、控制返回数据的格式、控制API的访问权限等。在本文中,我们将介绍Swagger常用的注解以及它们的使用方法。

一、@Api

@Api注解用来标识一个API的基本信息,包括API的名称、描述、作者等。这些信息将会出现在生成的文档中。@Api注解可以在Controller类上或者方法上使用。

@Api(value = "UserController", tags = {"用户管理"})
@RestController
@RequestMapping("/users")
public class UserController {

    @ApiOperation(value = "创建用户", notes = "根据User对象创建用户")
    @PostMapping("/add")
    public Result addUser(@RequestBody User user) {
        //...
    }
}

在上面的示例中,@Api注解用来标识UserController类是一个用来管理用户的Controller,其中”用户管理”是这个API的标签。这个标签会出现在生成的文档中,方便用户查找。

二、@ApiOperation

@ApiOperation注解用来描述一个API的具体操作,包括API的名称、请求方式、请求路径、请求参数、返回结果等。@ApiOperation注解只能在Controller的方法上使用。

@ApiOperation(value = "创建用户", notes = "根据User对象创建用户")
@PostMapping("/add")
public Result addUser(@Valid @RequestBody User user) {
    //...
}

在上面的示例中,@ApiOperation注解用来描述addUser方法的功能是创建一个用户。其中,value属性是API的名称,notes属性是API的详细描述。@PostMapping注解用来控制请求的HTTP方法,”/add”是请求路径。

三、@ApiParam

@ApiParam注解用来描述一个API的请求参数,包括参数名称、类型、描述、是否必填等。@ApiParam注解只能在Controller的方法的参数上使用。

@ApiOperation(value = "创建用户", notes = "根据User对象创建用户")
@PostMapping("/add")
public Result addUser(@ApiParam(name = "user", value = "用户实体", required = true) @Valid @RequestBody User user) {
    //...
}

在上面的示例中,@ApiParam注解用来描述请求参数user的具体信息。其中,name属性是参数的名称,value属性是参数的描述,required属性表示该参数是否必填。

四、@ApiResponses

@ApiResponses注解用来描述一个API的可能的返回结果,包括返回状态码、描述信息等。@ApiResponses注解只能在Controller的方法上使用。

@ApiOperation("查询用户")
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "请求成功"),
        @ApiResponse(code = 401, message = "未授权"),
        @ApiResponse(code = 403, message = "禁止访问"),
        @ApiResponse(code = 404, message = "请求路径不存在"),
        @ApiResponse(code = 500, message = "服务器内部错误")
})
@GetMapping("/{id}")
public Result getUserById(@ApiParam(value = "用户ID", required = true) @PathVariable Long id) {
    //...
}

在上面的示例中,@ApiResponses注解用来描述getUserById方法可能的返回结果。其中,@ApiResponse注解用来描述一个具体的返回结果,包括返回状态码和描述信息。

五、@ApiModelProperty

@ApiModelProperty注解用来描述一个API的返回结果,包括返回对象的名称、类型、描述等。@ApiModelProperty注解只能在DTO类的属性上使用。

@Data
public class UserDTO {
    @ApiModelProperty(value = "用户ID", example = "1")
    private Long id;
    @ApiModelProperty(value = "用户名", example = "Tom")
    private String username;
    @ApiModelProperty(value = "手机号码", example = "13800138000")
    private String mobile;
}

在上面的示例中,@ApiModelProperty注解用来描述UserDTO类中属性的具体信息。其中,value属性是属性的描述,example属性是属性的样例,方便用户理解。

六、小结

Swagger是一个非常实用的API文档工具,在大型项目中大大简化了API文档的维护和管理。在使用Swagger时,合理使用注解能够帮助我们更好地控制API的行为,生成清晰易懂的API文档。

原创文章,作者:JZBRX,如若转载,请注明出处:https://www.506064.com/n/371681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JZBRXJZBRX
上一篇 2025-04-23 18:08
下一篇 2025-04-23 18:08

相关推荐

  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • Hibernate注解联合主键 如何使用

    解答:Hibernate的注解方式可以用来定义联合主键,使用@Embeddable和@EmbeddedId注解。 一、@Embeddable和@EmbeddedId注解 在Hibe…

    编程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在数据分析、机器学习、图像处理等很多领域都有广泛的应用。Python序列分为三种:列表(list)、元组(tuple)和字符串(string)。…

    编程 2025-04-28
  • 上传多媒体文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一个非常常用的方法,它允许我们将本地的多媒体文件上传到微信服务器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    编程 2025-04-27
  • Python数据看板开发:常用的包及其使用

    随着数据分析和可视化的需求日渐增长,数据看板作为一种高效展示复杂数据信息的工具应运而生。Python语言作为一种面向数据分析和科学计算的编程语言,在数据看板开发中有着广泛的应用。本…

    编程 2025-04-27
  • Python常用库

    Python是一种高级编程语言,拥有丰富的第三方包和工具,常用库涵盖了各种应用场景。在此,我们将从以下几个方面对Python常用库进行阐述: 一、数据分析 数据分析是Python的…

    编程 2025-04-27
  • Python在运维中的常用库

    Python被广泛应用于各种Web应用程序、数据分析、自动运维、AI应用等领域。在运维领域,Python成为了最常用的编程语言之一。在本文中,我们将会讨论Python运维中常用的库…

    编程 2025-04-27
  • Python常用断言函数用法介绍

    本文将详细介绍Python中常用的断言函数,让大家了解这些函数的作用及使用方法,以便于进行代码测试和调试。 一、assertEqual函数 1、assertEqual函数是Pyth…

    编程 2025-04-27
  • Python常用函数用法介绍

    Python是一种高级编程语言,拥有强大且易于使用的函数库,可以轻松实现各种任务。本文将详细介绍Python中常用的函数,包括字符串、数字、列表、字典、日期等方面的常见函数。 一、…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25

发表回复

登录后才能评论