首页 文章

Swagger不读取Path参数:@Path(“folder {path: . *}”)

提问于
浏览
0

我有一个问题,让Swagger为具有可选路径参数的API调用生成正确的文档 .

我正在构建一个与层次结构相对应的API,类似于文件系统 . 我想调用相同的方法来获取根结构,就像我获取子资源一样 . 例如:获取root:/文件夹获取子文件夹:/ folder / path / to

我的Jax-rs方法如下所示:

@GET @Path("folder{path:.*}")
Response folderContents(@ApiParam(value = "The folder to list", required = false) @PathParam("path") String path)
{...}

我的方法调用工作,但我的招摇文档不正确,不起作用 . 当我运行它时,Swagger-ui会生成看起来像这样的GET调用:

http://localhost:8080/storage-war/rest/filestore/folder {路径: . *}

我正在寻找一种方法来强制Swagger生成正确的签名或重建我的正则表达式,以便我生成的Swagger是正确的 .

以前我尝试过使用@Path(“folder / {path: . }”);他生成了正确的Swagger文档,但没有尝试@Path(“/ folder {p:/?} {path :( . )}”);这产生了一个工作方法调用但不正确的Swagger文档 .

有没有直接的方法来做我正在寻找的东西?

Edit:

最后,我为root和文件夹创建了单独的方法调用 . 然后我用@ApiOperation(hidden = true)用它装饰了根调用 . 这样我在我的代码中有一个额外的方法,但只有一个方法出现在我的Swagger文档中 .

@GET @Path("folder/{path:.*}")
Response folderContents(@PathParam("path") String path)
{...}

@GET @Path("folder")
@ApiOperation(hidden = true)
Response rootContents()
{...}

1 回答

相关问题