网站运营建设的培训,做网站用商标吗,wordpress个人中心,房地产网站建设存在问题目录 前言1. ApiModel注解2. ApiModelProperty注解3. 实战 前言
在Java中#xff0c;ApiModel和ApiModelProperty是Swagger框架#xff08;用于API文档的工具#xff09;提供的注解#xff0c;用于增强API文档的生成和展示。这两者搭配使用更佳
使用两者注解#xff0c;… 目录 前言1. ApiModel注解2. ApiModelProperty注解3. 实战 前言
在Java中ApiModel和ApiModelProperty是Swagger框架用于API文档的工具提供的注解用于增强API文档的生成和展示。这两者搭配使用更佳
使用两者注解需导入swagger的依赖包
!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations --
dependencygroupIdio.swagger.core.v3/groupIdartifactIdswagger-annotations/artifactIdversion2.2.19/version
/dependency主要作用开发者对API的模型和属性进行详细的描述以便生成清晰的API文档。
1. ApiModel注解
ApiModel注解用于对Java类进行标注表示这个类是一个Swagger模型Model。通常用于描述一个数据对象或DTOData Transfer Object。
示例代码
import io.swagger.annotations.ApiModel;ApiModel(description 用户信息)
public class User {// 类的属性...
}深入其源码
package io.swagger.annotations;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.TYPE})
Retention(RetentionPolicy.RUNTIME)
Inherited
public interface ApiModel {String value() default ;String description() default ;Class? parent() default Void.class;String discriminator() default ;Class?[] subTypes() default {};String reference() default ;
}源码中的注解可看出
Target注解 用于指定自定义注解可以应用的程序元素类型参数是一个ElementType数组。该源码表示应用在类上Retention注解 用于指定自定义注解的生命周期即注解在程序运行时的保留策略。该源码表示运行时Inherited注解 子类会继承该注解。默认情况下注解不会被子类继承。
对应的属性值为
value属性属性值description属性描述值parent属性用于指定被注解类的父类discriminator属性多态情境区分多个子类subTypes属性指定被注解类的子类reference属性提供对被注解类的引用信息
2. ApiModelProperty注解
ApiModelProperty注解用于对Java类的属性进行标注表示这个属性是一个Swagger模型的属性。它可以用于描述属性的名称、说明、数据类型等信息
import io.swagger.annotations.ApiModelProperty;public class User {ApiModelProperty(value 用户ID, example 123)private Long id;ApiModelProperty(value 用户名, example john_doe)private String username;// 其他属性...
}深入其源码
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 */Deprecatedboolean readOnly() default false;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() {}}
}其属性如下
value属性 注解的默认属性name属性 指定属性或方法的名称。allowableValues属性 指定属性或方法的可接受值范围。access属性 指定属性或方法的访问规则。notes属性 提供对属性或方法的额外说明。dataType属性 指定属性或方法的数据类型。required属性 指定属性或方法是否为必需。position属性 指定属性或方法在文档中的位置。hidden属性 指定属性或方法是否应该在文档中隐藏。example属性 提供属性或方法的示例值。readOnly属性已过时 指定属性或方法是否为只读。已过时推荐使用 access 属性。accessMode属性 指定访问模式可以是 AUTO、READ_ONLY 或 READ_WRITE。reference属性 提供属性或方法的引用信息。allowEmptyValue属性 指定属性或方法是否允许为空值。extensions属性 指定属性或方法的扩展信息支持一组扩展属性。AccessMode枚举 属性或方法的访问模式包括 AUTO、READ_ONLY 和 READ_WRITE。
下面是一个简单的示例代码
import io.swagger.annotations.ApiModelProperty;public class Example {ApiModelProperty(value 用户ID, example 123, required true)private Long userId;ApiModelProperty(value 用户名, example 码农研究僧, readOnly true)public String getUsername() {return 码农研究僧;}
}3. 实战
比如应用在技术行业的某个模块对应数据库中的entity实体类如下
Data
TableName(equipment_accident_record)
ApiModel(value AccidentRecord对象, description AccidentRecord对象)
public class AccidentRecord extends BaseEntity {private static final long serialVersionUID 1L;/*** 设备编号*/ApiModelProperty(value 设备编号)private String equipmentNo;/*** 设备名称*/ApiModelProperty(value 设备名称)private String equipmentName;/*** 设备机种*/ApiModelProperty(value 设备机种)private String model;/*** 事故日期*/ApiModelProperty(value 事故日期)private String dateTime;/*** 操作者*/ApiModelProperty(value 操作者)private String operator;/*** 事故经过*/ApiModelProperty(value 事故经过)private String content;/*** 损坏情况*/ApiModelProperty(value 损坏情况)private String situation;/*** 事故原因*/ApiModelProperty(value 事故原因)private String reason;/*** 事故类别*/ApiModelProperty(value 事故类别)private String type;/*** 损失费用*/ApiModelProperty(value 损失费用)private String expense;/*** 处理意见*/ApiModelProperty(value 处理意见)private String opinion;/*** 主管技术员*/ApiModelProperty(value 主管技术员)private String technician;}
其前端vo类别中的类如下
Data
ApiModel(value AccidentRecordVO对象, description AccidentRecordVO对象)
public class AccidentRecordVO extends AccidentRecord {private static final long serialVersionUID 1L;}
文章转载自: http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.dgknl.cn.gov.cn.dgknl.cn http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.tsmxh.cn.gov.cn.tsmxh.cn http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.lmbm.cn.gov.cn.lmbm.cn http://www.morning.dskmq.cn.gov.cn.dskmq.cn http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.hghhy.cn.gov.cn.hghhy.cn http://www.morning.tqlhn.cn.gov.cn.tqlhn.cn http://www.morning.pqsys.cn.gov.cn.pqsys.cn http://www.morning.rqhn.cn.gov.cn.rqhn.cn http://www.morning.pmptm.cn.gov.cn.pmptm.cn http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.fnwny.cn.gov.cn.fnwny.cn http://www.morning.c7512.cn.gov.cn.c7512.cn http://www.morning.dspqc.cn.gov.cn.dspqc.cn http://www.morning.geledi.com.gov.cn.geledi.com http://www.morning.bqhlp.cn.gov.cn.bqhlp.cn http://www.morning.txfxy.cn.gov.cn.txfxy.cn http://www.morning.rdzlh.cn.gov.cn.rdzlh.cn http://www.morning.qqpg.cn.gov.cn.qqpg.cn http://www.morning.knswz.cn.gov.cn.knswz.cn http://www.morning.elbae.cn.gov.cn.elbae.cn http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn http://www.morning.lwlnw.cn.gov.cn.lwlnw.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.mdpkf.cn.gov.cn.mdpkf.cn http://www.morning.ckfyp.cn.gov.cn.ckfyp.cn http://www.morning.yysqz.cn.gov.cn.yysqz.cn http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn http://www.morning.dxpqd.cn.gov.cn.dxpqd.cn http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn http://www.morning.rgwrl.cn.gov.cn.rgwrl.cn http://www.morning.kldtf.cn.gov.cn.kldtf.cn http://www.morning.mlgsc.com.gov.cn.mlgsc.com http://www.morning.tscsd.cn.gov.cn.tscsd.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn http://www.morning.gthc.cn.gov.cn.gthc.cn http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn http://www.morning.rkyw.cn.gov.cn.rkyw.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.bkpbm.cn.gov.cn.bkpbm.cn http://www.morning.addai.cn.gov.cn.addai.cn http://www.morning.sbqrm.cn.gov.cn.sbqrm.cn http://www.morning.hlnys.cn.gov.cn.hlnys.cn http://www.morning.ktdqu.cn.gov.cn.ktdqu.cn http://www.morning.rxpp.cn.gov.cn.rxpp.cn http://www.morning.cwknc.cn.gov.cn.cwknc.cn http://www.morning.knjj.cn.gov.cn.knjj.cn http://www.morning.jngdh.cn.gov.cn.jngdh.cn http://www.morning.ltcnd.cn.gov.cn.ltcnd.cn http://www.morning.ysdwq.cn.gov.cn.ysdwq.cn http://www.morning.nmpdm.cn.gov.cn.nmpdm.cn http://www.morning.qtbnm.cn.gov.cn.qtbnm.cn http://www.morning.lywys.cn.gov.cn.lywys.cn http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn http://www.morning.phechi.com.gov.cn.phechi.com http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.jzklb.cn.gov.cn.jzklb.cn http://www.morning.tfqfm.cn.gov.cn.tfqfm.cn http://www.morning.frxsl.cn.gov.cn.frxsl.cn http://www.morning.ykrg.cn.gov.cn.ykrg.cn http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn http://www.morning.xsctd.cn.gov.cn.xsctd.cn http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn http://www.morning.spqtq.cn.gov.cn.spqtq.cn http://www.morning.krhkn.cn.gov.cn.krhkn.cn