在 swagger UI 中生成示例示例(在 Spring boot 项目中)

Posted

技术标签:

【中文标题】在 swagger UI 中生成示例示例(在 Spring boot 项目中)【英文标题】:generate sample example in swagger UI (in Spring boot project) 【发布时间】:2017-11-17 12:09:41 【问题描述】:

我正在使用 Spring Boot 应用程序并已使用 Swagger UI 进行配置。

我想知道我们是否可以使用示例值预先填充示例值,以便我们可以点击“试试看!”按钮,而无需输入一些示例值来获得响应。

它必须在那里。

有没有办法我们可以使用注释或 Swagger 使用的单独文件来做到这一点?

我正在使用带有 springfox-swagger2:2.7.0 和 springfox-swagger-ui:2.7.0 的 Spring Boot 项目,并使用 gradle 添加了依赖项。

【问题讨论】:

【参考方案1】:

由于@ApiParam 属性exampleexamples 不起作用(请参阅this issue on GitHub),因此对添加示例的支持有限/不存在。

您可以对简单参数 (@RequestParam) 执行的操作是添加带有 defaultValue 属性的 @ApiParam 注释,如下所示:

@GetMapping
public List<Foo> findAll(
        @RequestParam(required = false)
        @ApiParam(defaultValue = "foo") // Put the default value here
        String input) 
    // ...

但是,尚不支持使用 @RequestBody 参数执行此操作。

@RequestBody 参数的一种可能解决方法是单击 Swagger 测试器右侧的代码框,其中显示 示例值。如果您单击它,它将将该示例插入到字段本身中。

【讨论】:

谢谢,我会调查的。同时,我刚刚在mattfrear.com/2015/04/21/… 阅读了有关 swashbuckle 的信息,但它似乎仅适用于 .NET。任何可用于 Java Spring 的东西。 相当肯定 Springfox 是为 Spring 生成 Swagger 文档的最佳方法。 通过插件将其连接起来使用示例非常容易。但是对于您的需要,@g00glen00b 的建议会很好用!! 我想对示例值做同样的事情。有可能吗?【参考方案2】:

以下是提供示例的解决方法:

html注入swagger

@ApiParam(
    name="whatever",
    value="whatever",
    defaultValue="none</p><p>Example: xyz</p>"
)

他们在最新版本 2.9.2 中不提供保护。

【讨论】:

以上是关于在 swagger UI 中生成示例示例(在 Spring boot 项目中)的主要内容,如果未能解决你的问题,请参考以下文章