【问题标题】:Swagger Spring - Editing the URLsSwagger Spring - 编辑 URL
【发布时间】:2015-12-14 16:50:18
【问题描述】:

我正在使用 Spring Swagger 库 v1.0.2

马文:

<dependency>
  <groupId>com.mangofactory</groupId>
  <artifactId>swagger-springmvc</artifactId>
  <version>1.0.2</version>
</dependency>

我能够扫描我的 REST API 并在 Swagger UI 上查看它。我什至实现了 OAuth,而且效果很好。

我有一个独特的要求。我的控制器将 @RequestMapping 注释为

@RequestMapping("/unauthorize")
@Controller
public class SomeController {
    @RequestMapping(method = RequestMethod.GET, value = "/preferences/{preferenceName}")
    public SomeModel getDisplayPreference( @PathVariable("preferenceName") final String preferenceName ) {
    }
}

假设要访问 getDisplayPreference() 方法需要以下 URL:

http://www.example.com/<some-context>/unauthorize/preferences/somepreferencename

Swagger 假设并在 Swagger UI 的“试用”功能中尝试点击上述 URL。

但是,在我们的代码中还有一个额外的 URL 部分,如下所示

http://www.example.com/<some-context>/unauthorize/rest-resource/preferences/somepreferencename

所以您会看到“rest-resource”需要作为 URL 的一部分才能进行正确调用。由于 Swagger UI 不知道“rest-resource”——这不是它的错——每次调用都会失败。

有没有办法强制 Swagger 在 URL 中包含“rest-resource”?我可以以某种方式覆盖它吗?

【问题讨论】:

  • 你能贴出rest-resource 来自哪里的代码吗?你有控制器类的 RequestMapping 和没有提到那个字符串的方法。
  • 'rest-resource' 在 web.xml 中定义 springorg.springframework.web.servlet.DispatcherServlet 1 servlet-mapping> spring/rest-资源/*

标签: java spring-mvc swagger swagger-ui


【解决方案1】:

我找到了答案。

在swagger-ui.js方法下:

SwaggerSpecConverter.prototype.declaration = function(obj, swagger) {} 

有一段代码:

for(i = 0; i < obj.apis.length; i++) {
    var api = obj.apis[i];
    var path = api.path;
    var operations = api.operations;
    this.operations(path, obj.resourcePath, operations, resourceLevelAuth, swagger);
}

我将其更新为:

for(i = 0; i < obj.apis.length; i++) {
    var api = obj.apis[i];
    var path = '/rest-resource'+api.path;
    var operations = api.operations;
    this.operations(path, obj.resourcePath, operations, resourceLevelAuth, swagger);
}

这会在所有路径之前添加 /rest-resource 并帮助我解决问题。

【讨论】:

    【解决方案2】:

    您的 Swagger 配置是什么样的?您可以在那里设置基本路径。

    请参阅此博客 - http://jakubstas.com/spring-jersey-swagger-configuration/#.VfsJxxHBwXA。这里还有一个相关的讨论 - https://github.com/swagger-api/swagger-ui/issues/276

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多