返回
ApiModel 与 ApiModelProperty 注解详解
后端
2023-11-15 14:51:26
Swagger 是一款开源的 REST API 文档生成工具,可以生成各种不同语言的 API 文档,比如 Java、PHP、Python 等。ApiModel 注解和 ApiModelProperty 注解是 Swagger 中常用的两个注解,它们可以帮助我们为 API 接口生成更详细的文档。
ApiModel 注解
ApiModel 注解用于一个类是 Swagger 的模型类。该注解可以指定类的信息、版本等信息。以下是 ApiModel 注解的常用属性:
- description:类的描述信息。
- value:类的名称。
- subTypes:类的子类型。
- discriminated:指定类的子类型字段。
- reference:指定类的引用类型。
ApiModelProperty 注解
ApiModelProperty 注解用于描述类中的一个属性。该注解可以指定属性的名称、类型、描述、是否必填等信息。以下是 ApiModelProperty 注解的常用属性:
- name:属性的名称。
- value:属性的描述信息。
- dataType:属性的类型。
- required:指定属性是否必填。
- allowableValues:指定属性允许的值。
- example:指定属性的示例值。
- access:指定属性的访问级别。
- position:指定属性在文档中的位置。
- hidden:指定属性是否隐藏。
- readOnly:指定属性是否只读。
- writeOnly:指定属性是否只写。
- defaultValue:指定属性的默认值。
- containerType:指定属性的容器类型。
- type:指定属性的类型。
- format:指定属性的格式。
- example:指定属性的示例值。
使用示例
@ApiModel(description = "用户模型")
public class User {
@ApiModelProperty(value = "用户ID", required = true, example = "1")
private Long id;
@ApiModelProperty(value = "用户名", required = true, example = "zhangsan")
private String username;
@ApiModelProperty(value = "密码", required = true, example = "123456")
private String password;
@ApiModelProperty(value = "年龄", example = "18")
private Integer age;
@ApiModelProperty(value = "性别", allowableValues = {"男", "女"})
private String gender;
}
其他 Swagger 注解
除了 ApiModel 注解和 ApiModelProperty 注解之外,Swagger 还提供了其他一些注解,比如:
- ApiParam:用于描述请求参数。
- ApiIgnore:用于忽略一个类或属性。
- ApiModelPropertyOptional:用于指定一个属性是可选的。
- ApiResponse:用于描述一个响应。
- ApiResponses:用于描述一组响应。
- ApiResponseCode:用于指定一个响应的代码。
- ApiRequest:用于描述一个请求。
- ApiProperty:用于描述一个属性。
- ApiImplicitParam:用于描述一个隐式参数。
- ApiImplicitParams:用于描述一组隐式参数。
- RequestBody:用于描述请求体。
- ApiParamImplicit:用于指定一个参数是隐式的。
- ApiModelDescription:用于指定一个类的描述信息。
- ApiIgnoreProperty:用于忽略一个属性。
- ApiImplicitBody:用于描述请求体的隐式参数。
这些注解都可以帮助我们为 API 接口生成更详细的文档。
总结
ApiModel 注解和 ApiModelProperty 注解是 Swagger 中常用的两个注解,它们可以帮助我们为 API 接口生成更详细的文档。通过使用这两个注解,我们可以指定类的描述信息、属性的名称、类型、描述、是否必填等信息,从而帮助开发人员更好地理解 API 接口。