当前位置: 首页 > 知识库问答 >
问题:

向swagger中的请求添加上下文路径

田玉韵
2023-03-14

我有一个eureka服务,它有一个swagger。eureka在http://localhost:8050,服务按名称 /service.问题是当我打开swagger并尝试发出请求时,它会将其发送到http://localhost:8050/service/somecontroller。该服务有一个上下文路径“path”,因此它应该是http://localhost:8050/service/path/somecontroller。这是swagger的配置:

@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select()
            .apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
            .build();
    }

共有2个答案

夏弘义
2023-03-14

成功更改了招摇过市的上下文路径,如下所示:

@Value("${contextPath}")
private String contextPath;

@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
            //.host(retrieveHostHostname())
            .pathProvider(new PathProvider() {
            @Override
            public String getApplicationBasePath() {
                return contextPath;
            }

            @Override
            public String getOperationPath(String s) {
                return s.replace("somecontroller", contextPath+"/somecontroller");
            }

            @Override
            public String getResourceListingPath(String s, String s1) {
                return "/";
            }
        }).select()
            .apis(RequestHandlerSelectors.basePackage("com.test")).paths(PathSelectors.any())
            .build();
    }
匡祖鹤
2023-03-14

Springfox有一个悬而未决的问题(#2817),您可以尝试一些用户在那里提出的解决方法之一。

 类似资料:
  • 我使用的是Swagger 2.0和Swagger UI 3.0.3。 在我的api_定义中。yaml在我的路径之前有以下内容: 这将在Swagger UI中添加一个授权按钮,用户可以在其中粘贴他们的API密钥。我希望此API密钥在每个请求的请求标头中发送。但这不会发生,我不确定为什么。我错过了什么吗? 编辑: 请求似乎发出了,我回来了。 Chrome开发工具显示以下请求头: 我有路径设置为: 定义

  • 我正试图改变大摇大摆的基本路线。目前我有 当我从swagger发送请求时,请求将转到,但服务返回。 当我通过邮递员发送的请求时,它就可以工作了。 因此api注册为,swagger只是将基础添加到它的顶部,如果请求发送到swagger UI将无法工作 但问题是现在可以在上获得swagger文档,而不是。因为我们在上有所有其他服务文档,所以这是没有用的。 是否有任何方法可以添加基本文件,并且仍然可以访

  • 我正在尝试以编程方式设置一个spring boot应用程序上下文根。上下文根的原因是我们希望从访问应用程序,并将所有控制器路径附加到它。 下面是Web-App的应用程序配置文件。 这是主页面的索引控制器。 应用程序的新根应该位于,但它仍然位于。 我错过了什么导致spring boot没有在请求映射之前添加上下文根?

  • 我通过将上下文路径设置为/myservice来运行我的springboot应用程序。这将导致附加在URL处公开的所有执行器endpoint-http://localhost:8080/myservice/actuator/,而我只想要http://localhost:8080/actuator/.有没有办法告诉springboot忽略将上下文路径附加到执行器endpoint(通过Dispatche

  • 我有一个Spring Boot应用程序,它公开了REST服务,这些服务很容易在以下地址上调用 我被要求修改设置,以便添加上下文路径并让我的服务响应 因此,我编辑了我的应用程序。属性添加 一切正常,但我不能在旧地址上打电话给斯威格 我收到错误,无法加载远程配置 按照建议,我尝试添加属性 但是问题依然存在。我想斯威格应该可以在 但那没用。有什么提示吗? 谢谢支持。

  • 这部分文档描述了在 Flask 0.7 中的行为,与旧的行为基本一致,但有细小微妙的 差异。 这里推荐先阅读 应用上下文 章节。 深入上下文作用域 比如说你有一个应用函数返回用户应该跳转到的 URL 。想象它总是会跳转到 URL 的 next 参数,或 HTTP referrer ,或索引页: from flask import request, url_for def redirect_url