我用多个例子记录了我的一个API:
@Operation(summary = "Create new")
@PostMapping("")
public ResponseEntity<Object> createOne(
@Parameter(description = "MyDto")
@io.swagger.v3.oas.annotations.parameters.RequestBody(
content = @Content(examples = {
@ExampleObject(name = "one", value = EXAMPLE_ONE),
@ExampleObject(name = "two", value = EXAMPLE_TWO),
@ExampleObject(name = "three", value = EXAMPLE_THREE)}
))
@RequestBody MyDTO body
) {
...
}
这很好用,尽管EXAMPLE_ONE是一个字符串值。从下面的例子中可以看出,这是非常不清楚的
private static final String EXAMPLE_ONE = "{\"glossary\":{\"title\":\"example glossary\",\"GlossDiv\":{\"title\":\"S\",\"GlossList\":{\"GlossEntry\":{\"ID\":\"SGML\",\"SortAs\":\"SGML\",\"GlossTerm\":\"Standard Generalized Markup Language\",\"Acronym\":\"SGML\",\"Abbrev\":\"ISO 8879:1986\",\"GlossDef\":{\"para\":\"A meta-markup language, used to create markup languages such as DocBook.\",\"GlossSeeAlso\":[\"GML\",\"XML\"]},\"GlossSee\":\"markup\"}}}}}";
我在寻找一个更好的方法来提供例子。一个json文件会很好,但我找不到任何关于它的东西。
2条答案
按热度按时间eit6fx6z1#
您可以使用externalValue而不是value。看这里
zlwx9yxi2#
使用java文本块而不是普通的带引号的字符串。输入三倍双精度(“"”)参见https://www.baeldung.com/java-text-blocks