【问题标题】:Swagger/OpenAPI how to test dynamic paths from @GetMapping("/**")Swagger/OpenAPI 如何从 @GetMapping("/**") 测试动态路径
【发布时间】:2020-06-22 09:20:13
【问题描述】:

我正在创建一个 API 来获取可以处理动态路径上的路径的文件信息:

@GetMapping("/api/file/info/**")

用这个方法检索这个动态部分

public String getDynamicPartFromRequest(HttpServletRequest request) {
    return (new AntPathMatcher()).extractPathWithinPattern(
            (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE),
            (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE));
}

这允许检索这些示例路径:

  • /api/file/info/image.jpg --> image.jpg
  • /api/file/info/sub1/sub2/sub3/image.jpg --> sub1/sub2/sub3/image.jpg

所以从代码的角度来看,按预期完美运行!

问题是如何在 Swagger UI 中测试/使用这个,因为“**”部分无法填写,并且请求总是发送到

Request URL
https://localhost/api/file/info/**

有没有办法告诉 Swagger/OpenAPI 为 URL 的“**”部分提供输入字段?

【问题讨论】:

标签: java spring rest swagger openapi


【解决方案1】:

目前这是不可能的,因为 OpenAPI 规范不支持路径参数中的非编码斜杠。更多信息在这里:
https://github.com/OAI/OpenAPI-Specification/issues/892

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2017-11-21
    • 2018-06-19
    • 2019-08-04
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多