Как настроить примеры значений в Springfox Swagger 2 для тела запроса JSONObject?

Я хотел бы настроить примеры значений для моей документации по API, которую я создаю с помощью Springfox Swagger (Spring REST API).введите здесь описание изображения

Поскольку тело запроса представляет собой строковый JSON через JQuery AJAX, @RequestParam является строкой. Я пробовал несколько «решений», включая @ApiModel и @ApiImplicitParams, и все они не сработали. Кажется, что "string" никогда не меняется.

Как я могу изменить значения примера? Я не возражаю, если это нужно сделать вручную. Я просто хочу, чтобы область отображала объект JSON.


person IchBinGrumpig    schedule 17.02.2019    source источник


Ответы (1)


Если вы используете объект для описания тела запроса, вы можете использовать @ApiModelProperty, например:

data class RequestBody(
    @ApiModelProperty(example = "John Doe")
    val name: String,
    @ApiModelProperty(example = "Coolstreet 1")
    val address: String
)

Альтернативой является использование @Example и @ExampleProperties, но я нахожу их гораздо более беспорядочными. В официальном справочном документе есть несколько примеров их использования: http://springfox.github.io/springfox/docs/current/#example-application

Предоставленный пример:

@RequestMapping(value = "/2031", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "/2031")
@ApiImplicitParams({
    @ApiImplicitParam(
        name = "contents",
        dataType = "CustomTypeFor2031",
        examples = @io.swagger.annotations.Example(
            value = {
                @ExampleProperty(value = "{'property': 'test'}", mediaType = "application/json")
            })) 
})
public void save(@PathVariable("keyId") String keyId,
                 @PathVariable("id") String id,
                 @RequestBody String contents 
) {
}

public static class CustomTypeFor2031 { 
  private String property;

  public String getProperty() {
    return property;
  }

  public void setProperty(String property) {
    this.property = property;
  }
}
person Wobbley    schedule 24.04.2019