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

时间:2019-07-14 18:57:50

标签: java spring spring-boot

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

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

我想知道我该如何告诉那些方法需要一些特定的值或参数,而不仅仅是一个简单的Map对象,我想告诉具有api doc的用户他需要输入key1,key2 ,key3调用此方法。

有一个方法的例子

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

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

2 个答案:

答案 0 :(得分:0)

在Spring引导应用程序中,SpringFox似乎不直接支持Map类型。您必须编写自己的自定义插件。您可以从此问题中获取更多详细信息。

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

答案 1 :(得分:0)

我认为,到目前为止,尚不支持swagger的Map类型参数自动检测doc。 如果您需要从招摇中自动检测参数,只需将地图转换成POJO并将其包装在响应主体中,但是为此您需要将请求类型更改为POST。