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

Swagger2更改Swagger Ui的基本路径

赵禄
2023-03-14

通过添加这个SwaggerConfig文件并添加以下依赖项,我可以将swagger2设置到我的SpringBoot应用程序中:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
                .paths(Predicates.not(PathSelectors.regex("/error"))).build().apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo("Motorcycle Shop - Restful Services", "Rest based API for Motorcycle Shop", "1.0", "",
                new Contact("", "", ""), "", "");
        return apiInfo;
    }
}

pom.xml

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
 </parent>

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- Swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.6.1</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.1</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

尽管我的controller类看起来像这样:

@RestController
@RequestMapping("/motorcycles")
public class ProductController { 

// GET method

}

...我仍然可以通过执行以下操作来调用该控制器:

curl -X GET http://localhost:8080/motorcycles
http://localhost:8080/swagger-ui.html
http://localhost:8080/motorcycles/swagger-ui.html 
http://localhost:8080/motorboy/swagger-ui.html

RESTendpoint的curl-x GET如下所示:

http://localhost:8080/motorboy/motorcycles

看来spring-boot只是在浏览器中使用简单的旧版http://localhost:8080作为swagger的默认应用程序名。

共有1个答案

亢保赫
2023-03-14

我在application.properties中解决了设置Spring Boot应用程序上下文路径的问题(您可以用不同的方法设置此变量,请参阅此spring文档):

server.servlet.context-path=/user(在您的情况下是motorboy)

设置上下文路径后,我可以分别从http://localhost:8080/user/swagger-ui.htmlhttp://localhost:8080/user/v2/api-docs访问swagger-ui或swagger文档。

如果你想,我可以做一个简单的项目,并更新到github,只是为了澄清和解释这个配置。

 类似资料:
  • 我正在运行一个服务,其中可以访问Swagger UI: 但是,它背后是一个代理,比如: Swagger UI生成的URL如下所示:

  • 有没有办法可以从springfox swagger-UI中删除“basic-error-controller”? 图片:

  • 这是一个什么样的问题?项目结构:SwaggerConfig在中的身份验证配置在中 依赖关系 至于Spring靴 我的一个控制器的示例我的所有控制器都映射为 问题 工作很好,我会返回所有endpoint及其详细信息弹出显示“无法推断基本URL......” 我的日志看起来像: 不幸的是,我发现在日志的and处的路径映射有些奇怪:GET“/null/swagger-resources/configur

  • 问题内容: 是否可以更改用于构建框架的Carthage Swift版本? 我试图将我的项目迁移到Swift 3(在Xcode 8 beta上),并且第三方库是唯一阻止我的项目编译的东西。在为swift 3使用特定分支时,迦太基会抛出有关新Swift语法的错误。 任何帮助将不胜感激! 问题答案: 迦太基使用命令行工具来构建框架。命令行系统使用的Xcode版本由工具选择的值确定 它需要指向Develo

  • SwaggerUI 汉化版;修改了部分样式;结合SpringFox SpringFox-Swagger-UI实现API管理

  • 这是什么问题?项目结构:swaggenConfig位于automate.api.web.Auth.keycloak.falconkeycloakconfigurerAdapter中 依赖关系 至于Spring靴 我的一个控制器的示例我的所有控制器都像一样映射 发行 工作得很好,我得到了所有endpoint及其详细信息弹出一个显示“无法推断基本URL......” 求求你,帮帮我!:) 我仔细研究了