如何将 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)))

我得到了如图所示的结果: