如何使用 Swagger @RequestParam Map<String, String> 进行记录

Jar*_*cio 5 java spring spring-boot

我正在尝试使用 Swagger UI 记录使用 Spring Boot 制作的 RESTFUL API,问题是当我打开 swagger-ui.html 查看我的文档时。

当我打开 swagger-ui.html 上的控制器查看我的方法时,它们是空白的,只有一个参数,即 Map 类型。显然,通过这个地图对象,我获取所需的参数并向数据库或其他内容发出请求。

我想知道如何告诉 swagger 这些方法需要一些特定的值或参数,而不仅仅是一个简单的 Map 对象,我想告诉用户使用 api 文档,他需要输入 key1,key2,key3调用这个方法。

有一个方法的示例

@GetMapping("/technical/sma/**")
    public ArrayList<RegistroTecnico> recuperarSMA(@RequestParam Map<String, String> queryParameters) {
        return this.recuperarIndicadorAVG("sma",queryParameters);
    }
Run Code Online (Sandbox Code Playgroud)

如果没有办法,我想告诉 swagger 手动记录该方法所需的参数。

Sam*_*bit 3

看起来 SpringFox 在 Spring boot 应用程序中没有对 Map 类型的直接支持。您必须编写自己的自定义插件。您可以从这个问题中了解更多详细信息。

https://github.com/springfox/springfox/issues/1503#