如何在 ApiModelProperty 的 swagger 上设置 POJO 数据
How to set POJO Data on swagger for ApiModelProperty
我的端点有以下 ApiModel -
public class CreateConfigRequest {
@ApiModelProperty(example = "hive")
String entityType;
@ApiModelProperty(example = "imports")
String entityNamespace;
@ApiModelProperty(example = "hotel")
String entityName;
@ApiModelProperty(example = "{\"name\": \"hotel\", \"batch\": {\"type\": \"FullScan\"}}")
JobConfig content;
}
其中 JobConfig 是另一个 pojo class。代码如下:
@Data
public class JobConfig {
@NonNull private String name;
@NonNull private BatchSpec batch;
private ProfileConfig profile;
private ValidateConfig validate;
private ActionConfig action;
}
我的招摇看起来像-
这就是POJO的基本结构。
它应该是什么样子 -
基本上我想了解如何将其设置为默认 JSON 结构。
如果您根本不想在 JSON 中包含 profile
、validate
和 action
,您可以简单地使用 @JsonIgnore
,如下所示:
@Data
public class JobConfig {
@NonNull private String name;
@NonNull private BatchSpec batch;
@JsonIgnore
private ProfileConfig profile;
@JsonIgnore
private ValidateConfig validate;
@JsonIgnore
private ActionConfig action;
}
如果您只是不想在 Swagger 文档中列出它们,您可以使用 @ApiModelProperty
如下:
@Data
public class JobConfig {
@NonNull private String name;
@NonNull private BatchSpec batch;
@ApiModelProperty(hidden = true)
private ProfileConfig profile;
@ApiModelProperty(hidden = true)
private ValidateConfig validate;
@ApiModelProperty(hidden = true)
private ActionConfig action;
}
鉴于您不想隐藏属性而是显示更真实的示例,请尝试以下操作:
@Data
public class JobConfig {
@NonNull
@ApiModelProperty(example = "hotel")
private String name;
@NonNull
private BatchSpec batch;
private ProfileConfig profile;
private ValidateConfig validate;
private ActionConfig action;
}
@Data
public class BatchSpec {
@ApiModelProperty(example = "FullScan")
private String type;
}
我的端点有以下 ApiModel -
public class CreateConfigRequest {
@ApiModelProperty(example = "hive")
String entityType;
@ApiModelProperty(example = "imports")
String entityNamespace;
@ApiModelProperty(example = "hotel")
String entityName;
@ApiModelProperty(example = "{\"name\": \"hotel\", \"batch\": {\"type\": \"FullScan\"}}")
JobConfig content;
}
其中 JobConfig 是另一个 pojo class。代码如下:
@Data
public class JobConfig {
@NonNull private String name;
@NonNull private BatchSpec batch;
private ProfileConfig profile;
private ValidateConfig validate;
private ActionConfig action;
}
我的招摇看起来像-
这就是POJO的基本结构。
它应该是什么样子 -
基本上我想了解如何将其设置为默认 JSON 结构。
如果您根本不想在 JSON 中包含 profile
、validate
和 action
,您可以简单地使用 @JsonIgnore
,如下所示:
@Data
public class JobConfig {
@NonNull private String name;
@NonNull private BatchSpec batch;
@JsonIgnore
private ProfileConfig profile;
@JsonIgnore
private ValidateConfig validate;
@JsonIgnore
private ActionConfig action;
}
如果您只是不想在 Swagger 文档中列出它们,您可以使用 @ApiModelProperty
如下:
@Data
public class JobConfig {
@NonNull private String name;
@NonNull private BatchSpec batch;
@ApiModelProperty(hidden = true)
private ProfileConfig profile;
@ApiModelProperty(hidden = true)
private ValidateConfig validate;
@ApiModelProperty(hidden = true)
private ActionConfig action;
}
鉴于您不想隐藏属性而是显示更真实的示例,请尝试以下操作:
@Data
public class JobConfig {
@NonNull
@ApiModelProperty(example = "hotel")
private String name;
@NonNull
private BatchSpec batch;
private ProfileConfig profile;
private ValidateConfig validate;
private ActionConfig action;
}
@Data
public class BatchSpec {
@ApiModelProperty(example = "FullScan")
private String type;
}