gpt4 book ai didi

java - Swagger2 更改 Swagger Ui 的基本路径

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:56 26 4
gpt4 key购买 nike

只需添加此 SwaggerConfig 文件并添加以下依赖项,即可将 Swagger 2 设置到我的 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

}

...我仍然可以通过这样做来调用该 Controller :

curl -X GET http://localhost:8080/motorcycles

我必须使用以下 URL 路径打开 Swagger-ui.html 文件:

http://localhost:8080/swagger-ui.html

如何让我的 Spring Boot 应用程序显示如下内容(实际的应用程序名称或 Controller 中指定的默认 RequestMapping - 如果 Controller 是应用程序中的唯一 Controller ):

http://localhost:8080/motorcycles/swagger-ui.html 

基本上,我如何在 swagger-ui.html 前添加应用程序名称?

那么,假设我的应用名为 motorboy,这就是我想要的:

http://localhost:8080/motorboy/swagger-ui.html

REST 端点的 Curl -X GET 看起来像这样:

http://localhost:8080/motorboy/motorcycles

似乎 spring-boot 只是使用普通的旧 http://localhost:8080用于 swagger 浏览器中的默认应用程序名称。

最佳答案

我解决了这个问题,在 application.properties 中设置 spring boot 应用程序的上下文路径(你可以用不同的方式设置这个变量,参见 this spring doc ):

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

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

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

关于java - Swagger2 更改 Swagger Ui 的基本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45319072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com