gpt4 book ai didi

spring-boot - 具有 url 模式的端点的 swagger 文档

转载 作者:行者123 更新时间:2023-12-02 05:10:49 25 4
gpt4 key购买 nike

我想为具有 ** 模式的端点创建 swagger 文档。在 swagger-ui 页面中,我找到端点,但没有任何 ** url 的输入。我的端点签名是:

@GetMapping("/{category}/**")
public DocumentModel fetch(HttpServletRequest httpServletRequest, @PathVariable("category") String category)

我想通过 myCategory/test/document1 地址调用上述端点,但没有 test/document1 的任何占位符。如何通过 swagger 调用此端点?

最佳答案

不幸的是,这是不可能的。 Swagger 既不支持路径中的通配符,也不支持可选的路径段,也不支持路径参数值中的斜杠。如果您查看 swagger-ui 为您的映射执行的请求,您将看到如下内容:

curl -X GET "http://localhost:8080/category1/**"

星星不会被替换,它们被视为普通字符串,而不是占位符。

恐怕您唯一的选择是修改端点或添加新端点,例如:

@GetMapping("/{category}/test/{document}")
@Parameter(name = "document", in = ParameterIn.PATH)
public DocumentModel fetchTest(HttpServletRequest httpServletRequest, @PathVariable("category") String category) {
return fetch(httpServletRequest, category);
}

@GetMapping("/{category}/**")
public DocumentModel fetch(HttpServletRequest httpServletRequest, @PathVariable("category") String category) {
// ...
}

如果需要,您可以从 swagger-ui 中隐藏原始端点:

@GetMapping("/{category}/**")
@Operation(hidden = true)
public DocumentModel fetch(HttpServletRequest httpServletRequest, @PathVariable("category") String category) {
// ...
}

关于spring-boot - 具有 url 模式的端点的 swagger 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59597766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com