java swagger 3 annotations @ExampleObject from jsonfile

0s7z1bwu  于 2023-06-05  发布在  Java
关注(0)|答案(2)|浏览(180)

我用多个例子记录了我的一个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文件会很好,但我找不到任何关于它的东西。

eit6fx6z

eit6fx6z1#

您可以使用externalValue而不是value。看这里

zlwx9yxi

zlwx9yxi2#

使用java文本块而不是普通的带引号的字符串。输入三倍双精度(“"”)参见https://www.baeldung.com/java-text-blocks

相关问题