java swagger 3 jsonfile 中的 @ExampleObject 注释

问题描述 投票:0回答:3

我正在用多个这样的示例来记录我的 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
) {
    ...
}

虽然 Examples_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 文件会很好,但我找不到任何相关内容。

swagger swagger-3.0
3个回答
1
投票

使用java文本块代替普通的带引号的字符串 例如投入三双(“””) 请参阅https://www.baeldung.com/java-text-blocks


0
投票

您可以使用 externalValue 代替 value。请参阅此处


0
投票

在类的 static{} 期间使用 Java 文本块,或将文件加载到字符串中。

您可以使用我的实用程序来实现此目的。

© www.soinside.com 2019 - 2024. All rights reserved.