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

使用应用程序覆盖摆动路径。属性

胡禄
2023-03-14

我正在使用springfox swagger 2.8.0。我想根据我的需求定制我的Swagger文档和API版本路径。能够使用应用程序修改版本路径。属性,并且它正在正常运行:

斯普林福克斯。文档大摇大摆路径=/v2/可用性服务

http://localhost:8080/context-path/v2/availability-service

但是想要我的留档URL如下,如何使用application.properties条目或任何方法覆盖。

http://localhost:8080/context-路径/可用性服务。html

N、 B。http://localhost:8080/context-路径/招摇过市ui。正确返回文档的html URL。

有谁能具体说明怎么做吗?任何建议都会有帮助。

共有3个答案

谭锐藻
2023-03-14

我认为简单的答案是你不能。至少有一个原因源于springfox中的这个功能。js代码,其中是swagger ui。html是硬编码的

const getBaseURL = () => {
    const urlMatches = /(.*)\/swagger-ui.html.*/.exec(window.location.href);
    return urlMatches[1];
};

更长的答案是,根据您的需求和您想投入的工作量,您可能可以绕过这个问题。

如果您只是希望有人从特定链接访问swagger ui文档,那么一个快速的解决方案是将任何请求重定向到http://localhost:8080/context-路径/可用性服务。html收件人http://localhost:8080/context-路径/招摇过市ui。html

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addRedirectViewController(
                "/context-path/availability-service.html",
                "swagger-ui.html"
        );
    }
}
湛同
2023-03-14

我的Java代码:前提是url具有良好的命名和分组规则。

@Configuration
@EnableSwagger2
@ConditionalOnProperty("swagger.enable")
public class Swagger2Config {

@Bean
public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2).groupName("contract")
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.invoice.gateway.api.admin"))
            .paths(PathSelectors.ant("/api/admin/**"))
            .build();
}

private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title("Web APIs")
            .description("Contract Interface")
            .version("1.0")
            .build();`enter code here`
}
}
公冶威
2023-03-14

您可以尝试以下操作:

server.contextPath=/v2/availability-service
 类似资料:
  • 我有一个spring boot应用程序,它有一个应用程序YAML文件(src/main/resources/)。 我想覆盖部署的env部分(k8s)中的整个< code>props列表。在Kubernetes有什么办法吗?

  • 我想开发一个API,使非程序员能够设置电子邮件属性,例如端口或主机。我发现我可以使用Spring Boot注释@ConfigurationProperties在类中加载属性。 我可以使用getPort检索属性,并使用setPort进行设置。 但是,使用此方法可以计算应用程序中的实际值。使用setPort或setHost时,属性文件不会更改。因此,当我重新启动应用程序时,更改会丢失。是否有办法实际更

  • 我想覆盖应用程序中定义的属性。属性通过cmd与应用程序中现有的其他属性。属性,但仅允许提供预定义值。 我需要的是通过应用程序中已经存在的命令行传递调度的参数。属性,它将更改在调度中定义的默认值。 我的问题是,当我从cmd执行jar文件时,它正在获取构建时存在于中的值。它没有覆盖现有值值。我想根据用户需要覆盖值。 Spring代码 应用属性 在cmd中

  • 我正在尝试在外部tomcat上运行camel应用程序。有2个应用程序。属性文件存在于我的项目中,一个在src/main/resources下,另一个在src/test/resources下。当我使用maven install命令创建war文件时,它使用应用程序。来自src/main/resources的属性文件(这是必需的),但当我在eclipse中使用tomcat启动应用程序时,它正在使用app

  • 假设我有以下SoapApplication启动程序: 那么application.properties中的一些属性在哪里 我更喜欢设置test.properties 我试着做了这样的东西: 和SpringApplication.Run(testconfig.class,args); System.SetProperty(“spring.config.location”,“file:testdata

  • 如果目录已经存在,则通过rdd.saveAsPickleFile(输出路径)写入文件失败。虽然这是避免意外删除文件的一件好事,但我想知道是否有明确覆盖文件夹/文件的选项?与数据帧类似: df.write.mode('overwrite')。format('json')。save(输出路径) 注:以下两个问题在这里和这里曾经问过,但没有得到明确的答案。