在Spring项目(不是Spring Boot)上配置Open API 3



在遵循@Zagrebin-Victor的建议后,我有一个运行OpenAPI 3 (springdoc-openapi-1.5.3)的Spring MVC项目

下面是我在属性文件中定义的:

springdoc.swagger-ui.disable-swagger-default-url=true

所以没有"Petstore API"默认加载

现在,我想配置一些记录在Swagger-ui配置web ("urls"属性,例如)。这就是问题所在,我不知道如何配置项目

不工作,如果属性设置:

  1. "src/main/resources/application.properies";(虽然我的应用程序不是一个Spring Boot)
  2. "src/main/resources/swagger-config.yaml">
  3. 不把它作为环境变量的代码(丑陋的解决方案)

我发现并尝试了另一个属性符号,如这个GitHub线程上的文档。但没有运气

任何想法?

Thank you very much

p。S:我不想配置swagger-ui在URL上放置参数

解决这个问题的最终方法是跳过任何"properties"或";yaml"完全。相反,我在提供OpenAPIbean的配置类中显式地定义了属性bean:

public class OpenApiConfig {
// ...
// ...
// ...
@Bean
public OpenAPI accOpenApi() {
return new OpenAPI()
.info(apiInfo);
}
@Bean
public SpringDocConfigProperties springDocConfigProperties() {
SpringDocConfigProperties props = new SpringDocConfigProperties();
props.setPackagesToScan(List.of("x.y.z"));
props.setPathsToMatch(List.of("/api/**"));
return props;
}
@Bean
public SwaggerUiConfigProperties SwaggerUiConfigProperties() {
SwaggerUiConfigProperties props = new SwaggerUiConfigProperties();
props.setDisableSwaggerDefaultUrl(true);
props.setDisplayRequestDuration(true);
props.setTryItOutEnabled(true);
props.setPath("/my-path-to/index.html");
return props;
}
}

在这个类之上没有@Configuration,因为我是从servlet上下文的xml配置中引用(并创建)它的。

最新更新