gpt4 book ai didi

java - Spring Boot - Swagger - Swagger 不会将标准值更改为多模块项目的 ApiInfo/GlobalResponse

转载 作者:行者123 更新时间:2023-12-05 02:40:53 34 4
gpt4 key购买 nike

首先,提前感谢所有回复。

现在让我们继续讨论这个问题。今天,我为一个 Spring Boot 项目安装了所有 3.0.0 Swagger 依赖项(boot-starter、swagger2 和 swagger-ui)。一切正常,但我无法更改 Docket 生成器中的 apiInfo 信息。

Gradle :

    implementation "io.springfox:springfox-boot-starter:3.0.0"
implementation "io.springfox:springfox-swagger2:3.0.0"
implementation "io.springfox:springfox-swagger-ui:3.0.0"

SpringFoxConfig.java:

package io.ubivis.swagger;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
public class SpringFoxConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(metaData());
}

private ApiInfo metaData() {
return new ApiInfoBuilder()

.title("Spring Boot REST API")
.description("Spring Boot REST API for Space Study")
.version("1.0.0")
.license("Apache 2.0")
.contact(new Contact("XYZ", "XYZ.com", "XYZ@gmail.com"))
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
.build();
}
}

即使在 Docket 构建器中调用元数据函数,Swagger just ignores it and doesn't change any of the default information .

有人知道怎么解决吗?谢谢!

编辑:

刚刚意识到我无法更改任何默认值。即使我尝试更改 GlobalResponseMessage:

    @Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.useDefaultResponseMessages(false)
.globalResponseMessage(RequestMethod.POST, responseMessageForGet())
.apiInfo(metaData());
}

没有任何反应,页面继续显示默认的 globalResponseMessage。

在这次编辑中,我尝试将依赖降级到 2.9.2 版本,寻找我的问题在哪里。但我仍然遇到同样的问题(现在又遇到了一个问题,哈哈)。

最佳答案

刚刚找到了我的问题的答案。其实一开始我忘了说我的项目是一个多模块的spring项目。我不认为这会改变问题的任何内容,但我错了。问题是我的 SpringApplication 没有扫描类 SwaggerConfiguration。

如果您有任何类似的问题,您应该将此注释插入到您的 SpringBootApplication 中:

@SpringBootApplication(scanBasePackages = "br.com.vicnetto")
@EnableSwagger2
public class SpringBootApplication {

public static void main(String[] args) {
SpringApplication.run(ConsoleConfigApplication.class, args);
}
}

@SpringBootApplication 的参数 scanBasePackages 应该包括 SwaggerConfiguration 类。

而第二个注解@EnableSwagger2需要在@SpringBootApplication上下文中(仅适用于3.0.0以下的Swagger版本)

关于java - Spring Boot - Swagger - Swagger 不会将标准值更改为多模块项目的 ApiInfo/GlobalResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68387086/

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