Java 如何在Swagger UI中显示自定义JSON?

Java 如何在Swagger UI中显示自定义JSON?,java,swagger-ui,openapi,springfox,Java,Swagger Ui,Openapi,Springfox,我正在使用springfox boot starter 3.0构建API文档 除一例外,所有事情都进展顺利。如果我的请求参数是Map或JSONObject,则似乎无法在Swagger UI模型中显示JSON示例,如下所示: @PostMapping(“/trigger”) @ApiOperation(value=“触发某物”) @ApitParams( @apimplicitparam(name=“reqForm”, value=“{\“123123\”:\“123123\”},example=

我正在使用springfox boot starter 3.0构建API文档

除一例外,所有事情都进展顺利。如果我的请求参数是Map或JSONObject,则似乎无法在Swagger UI模型中显示JSON示例,如下所示:

@PostMapping(“/trigger”)
@ApiOperation(value=“触发某物”)
@ApitParams(
@apimplicitparam(name=“reqForm”,
value=“{\“123123\”:\“123123\”},example=“{\“123123\”:\“123123\”}”)
公共StandardResult触发器(@RequestBody Map reqForm)引发异常{
对象dagId=reqForm.get(“dagId”);
objectconf=reqForm.get(“conf”);
返回StandardResult.success(dagService.trigger(dagId,conf));
}
我只想在Swagger UI中显示JSON的示例值和示例模型,不想编写任何额外的.java文件来定义结构

其他具有大量.java文件来描述结构的控制器可以在Swagger UI中显示如下:

但在这种情况下,Map应该是一个动态参数,它会频繁变化。所以我希望展示一个没有太多.java文件的JSON模型,这样其他阅读我文档的人就会有一个很好的体验,我就不必每天更改.java文件了

我知道如何通过使用
@ApiModel
@ApiModelProperty
创建多个Java bean,在Swagger UI中显示模型和示例。但这也可能导致大量的.java文件,以便只创建一个JSON,并且在JSON中的某些内容发生更改时,很难找到和更新属性

例如,我将告诉其他人发送JSON,如下所示:

“dagInfo”:{
“id”:17,
“标签”:[
“测试”,
“任务”,
“达格”
],
“间隔”:“无”,
“dagName”:“testDagGenerate”,
“dagCode”:“测试数据生成”,
“描述”:“测试”
}
通过使用下面显示的
@apimplicitparams
,我可以在Swagger UI中显示示例值,但不显示模型

@PostMapping(“/trigger”)
@ApiOperation(value=“触发某物”)
@ApitParams(
@apimplicitparam(name=“reqForm”,
value=“example json”,example=“\”dagInfo\”:{\n+
“\“id\”:17,\n”+
“\”标记\“:[\n”+
“测试”,\n+
“任务”,\n+
“\“dag\”\n”+
“],\n”+
“\”间隔\“:\”无\“,\n”+
“\“dagName\:\“testDagGenerate\”,\n”+
“\“dagCode\:\“测试\u dag\u生成\”,\n”+
“\”描述\“:\”测试\“\n”+
"    }"))
公共StandardResult触发器(@RequestBody JSONObject reqForm)引发异常{
Long-dagId=reqForm.getObject(“dagId”,Long.class);
JSONObject conf=reqForm.getJSONObject(“conf”);
返回StandardResult.success(dagService.trigger(dagId,conf));
}

我不知道如何将这个JSON示例模型直接编写给Swagger。 或者没有任何配置就无法在Swagger UI中定义示例模型

Maven的依赖关系如下所示:


伊奥·斯普林福克斯
springfox启动程序
3.0.0