SpringBoot集成Swagger(八)@ApiModelProperty()注解一撸到底 您所在的位置:网站首页 随笔记是什么意思 SpringBoot集成Swagger(八)@ApiModelProperty()注解一撸到底

SpringBoot集成Swagger(八)@ApiModelProperty()注解一撸到底

2023-08-08 15:17| 来源: 网络整理| 查看: 265

「这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战」

相关文章

Java随笔记:Java随笔记

前言 上一篇我们讲到了@ApiModel()。 今天给大家带来@ApiModelProperty()详解! 顾名思义,这玩意是用来标注属性的 ApiModelProperty() 熟悉的小伙伴们都知道了,先撸进去看看! @Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface ApiModelProperty {    String value() default ""; ​    String name() default ""; ​    String allowableValues() default ""; ​    String access() default ""; ​    String notes() default ""; ​    String dataType() default ""; ​    boolean required() default false; ​    int position() default 0; ​    boolean hidden() default false; ​    String example() default ""; ​    /** @deprecated */    @Deprecated    boolean readOnly() default false; ​    ApiModelProperty.AccessMode accessMode() default ApiModelProperty.AccessMode.AUTO; ​    String reference() default ""; ​    boolean allowEmptyValue() default false; ​    Extension[] extensions() default {@Extension(    properties = {@ExtensionProperty(    name = "",    value = "" )} )}; ​    public static enum AccessMode {        AUTO,        READ_ONLY,        READ_WRITE; ​        private AccessMode() {       }   } } 由@Target的参数可知:它是使用在属性上或者方法上! 由@Retention的参数可知:它是运行时生效的! 那么,这么多参数分别是干嘛的呢?下面详细道来。

测试案例

@Data @ApiModel(value = "学生类",description = "这是类的详细描述信息呀",parent = CourseResponse.class,subTypes = CourseResponse.class) public class StudentResponse{ ​    @ApiModelProperty(value = "姓名",            name = "name",            allowableValues = "32",            access = "1",            notes = "用户的姓名",            dataType = "String",            required = false,            position = 0,            hidden = false,            example = "大鱼",            readOnly = false,            reference = "name",            allowEmptyValue = false   )    private String name;    @ApiModelProperty(value = "年龄")    private int age;    @ApiModelProperty(value = "爱好")    private String like; ​    @ApiModelProperty()    private CourseResponse perResponse; }

启动看结果

image-20211126200834724.png image-20211126200854047.png

效果已经看到了,下面我们对其每个参数进行解释。

总结

value()

参数类型为String,作用为此属性的简要描述。

name()

参数类型为String,作用为允许重写属性的名称。

allowableValues()

参数类型为String,作用为限制此参数存储的长度。

access()

参数类型为String,作用为允许从API文档中过滤属性

notes()

参数类型为String,作用为该字段的注释说明

dataType()

参数类型为String,作用为参数的数据类型。

required()

参数类型为String,作用为指定参数是否可以为空,默认为false

position()

参数类型为int,作用为允许显式地对模型中的属性排序。

hidden()

参数类型为boolean,作用为是否允许模型属性隐藏在Swagger模型定义中,默认为false。

example()

参数为String类型,作用为属性的示例值。

readOnly()

参数类型为boolean,作用为是否允许将属性指定为只读,默认为false。

reference()

参数类型为String,作用为指定对对应类型定义的引用,重写指定的任何其他数据名称。

allowEmptyValue()

参数类型为boolean,作用为是否允许传递空值,默认为false 由于这个参数实在太多,而且很多不大常用,我就不一一演示对比的区别了。 感兴趣的小伙伴们可以对着我的总结来试一试~ 以上都是个人所言,如有不对,欢迎指出。 如果对您有帮助,希望给我点个赞点个关注呗!

路漫漫其修远兮,吾必将上下求索~

如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有