如何在SpringDoc OpenAPI3中刷新文件?

时间:2020-03-17 09:07:10

标签: java spring-boot swagger-ui openapi

我有一个Springboot项目,我想在其中记录我的API:

以下是Web服务正在处理的示例:

    @ApiResponses(
        value = {
                @ApiResponse(responseCode = "200", content =  @Content(
                        mediaType = "*/*",
                        schema = @Schema(implementation = Object.class),
                        examples = {
                                @ExampleObject(name = "boo",
                                summary = "example of boo",
                                ref = "#/swagger/Planner/semi_planif_200_response.json")
                        }

                ))
        }
)
@PostMapping(value = "/startSemiPlanification", produces = "application/json")
private ResponseEntity<Object> startSemiPlanner( @RequestBody PlanificationDto planificationData,
                                                @RequestParam(name = "groupByUserCode", required = false) Optional<Boolean> groupByUserCode,
                                            @RequestParam(name = "range", defaultValue = "18") Integer range

我的问题是Swagger无法解析此引用 ref =“#/ swagger / Planner / semi_planif_200_response.json” 我什至尝试使用绝对路径,但它不起作用: The Error Message from swagger

这是文件路径:

File path

1 个答案:

答案 0 :(得分:1)

引用在编译时不会解析,而是在运行项目后,swagger引擎将解析引用,因为它们是服务器内的静态资源:

 $ref= resources/swagger/user.json 

如果我们在本地主机上运行实例,则将从以下URL获取资源:localhost:8080/resources/swagger/user.json

提示:确保Spring资源处理程序将目标资源放置在指定位置上!