如何将 Swagger 1.5 中的请求正文更改为示例 JSON 请求正文
How can I change the request body in Swagger 1.5 to an example JSON request body
Current look of Swagger request
是否可以换体
{
"config": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"class": "string"
}
看起来像
{
"class": "my.class.com",
"config": {
"myParam": "",
"datacenter": "USA",
}
目前方法看起来像这样
@POST
@Path("/run")
@Consumes(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Runs a specified job asynchronously",
notes = "Doesn't work for full tasks.")
public Response createTask(TaskConfig taskConfig) {
TaskConfig 是一个基本的class,有两个成员变量
public class TaskConfig {
@JsonProperty("class")
@NotNull
private String clazz;
private Map<String, Object> config;
我们正在使用来自此的 Swagger 1.5 Dropwizard Swagger bundle library. 我知道 2.0 有 @RequestBody 注释,我只是想确保这是我在升级之前的唯一选择。
即使使用 @RequestBody
我们也需要在 TaskConfig
class.
中添加额外的注释
我们正在使用 Swagger 2。0.x。 TaskConfig class 会有这样的字段:
@Schema(
description = " My descriptions",
type = "array",
example = " {\"myParam\" :\"value\" ,"
+ "\"datacenter\": \"USA\"}")
private Map<String, Object> config;
同样的,clazz
也可以这样注解:
@Schema(description = "The field descrition", example = "true")
并且 RequestBody
注释看起来像:
@RequestBody(
description = "Description of TaskConfig ",
content = @Content(schema = @Schema(implementation = TaskConfig .class)))
我得到了如图所示的结果:
Current look of Swagger request
是否可以换体
{
"config": {
"additionalProp1": {},
"additionalProp2": {},
"additionalProp3": {}
},
"class": "string"
}
看起来像
{
"class": "my.class.com",
"config": {
"myParam": "",
"datacenter": "USA",
}
目前方法看起来像这样
@POST
@Path("/run")
@Consumes(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Runs a specified job asynchronously",
notes = "Doesn't work for full tasks.")
public Response createTask(TaskConfig taskConfig) {
TaskConfig 是一个基本的class,有两个成员变量
public class TaskConfig {
@JsonProperty("class")
@NotNull
private String clazz;
private Map<String, Object> config;
我们正在使用来自此的 Swagger 1.5 Dropwizard Swagger bundle library. 我知道 2.0 有 @RequestBody 注释,我只是想确保这是我在升级之前的唯一选择。
即使使用 @RequestBody
我们也需要在 TaskConfig
class.
我们正在使用 Swagger 2。0.x。 TaskConfig class 会有这样的字段:
@Schema(
description = " My descriptions",
type = "array",
example = " {\"myParam\" :\"value\" ,"
+ "\"datacenter\": \"USA\"}")
private Map<String, Object> config;
同样的,clazz
也可以这样注解:
@Schema(description = "The field descrition", example = "true")
并且 RequestBody
注释看起来像:
@RequestBody(
description = "Description of TaskConfig ",
content = @Content(schema = @Schema(implementation = TaskConfig .class)))
我得到了如图所示的结果: