|
@@ -16,7 +16,11 @@
|
|
*/
|
|
*/
|
|
package org.apache.dolphinscheduler.api.configuration;
|
|
package org.apache.dolphinscheduler.api.configuration;
|
|
|
|
|
|
|
|
+import org.apache.dolphinscheduler.dao.entity.DsVersion;
|
|
|
|
+import org.apache.dolphinscheduler.dao.repository.DsVersionDao;
|
|
|
|
+
|
|
import org.springdoc.core.GroupedOpenApi;
|
|
import org.springdoc.core.GroupedOpenApi;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.context.annotation.Configuration;
|
|
@@ -27,20 +31,26 @@ import io.swagger.v3.oas.models.OpenAPI;
|
|
import io.swagger.v3.oas.models.info.Info;
|
|
import io.swagger.v3.oas.models.info.Info;
|
|
|
|
|
|
|
|
|
|
- * swager2 config class
|
|
+ * Swagger configuration, only enabled when the configuration item api.swagger.enable is true.
|
|
|
|
+ * The swagger ui is under <a href="http://${host}:${port}/dolphinscheduler/swagger-ui.html">http:
|
|
*/
|
|
*/
|
|
@Configuration
|
|
@Configuration
|
|
@ConditionalOnWebApplication
|
|
@ConditionalOnWebApplication
|
|
@PropertySource("classpath:swagger.properties")
|
|
@PropertySource("classpath:swagger.properties")
|
|
-public class OpenAPIConfiguration implements WebMvcConfigurer {
|
|
+public class SwaggerConfiguration implements WebMvcConfigurer {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private DsVersionDao dsVersionDao;
|
|
|
|
+
|
|
|
|
+ private volatile String dsVersion;
|
|
|
|
|
|
@Bean
|
|
@Bean
|
|
- public OpenAPI apiV1Info1() {
|
|
+ public OpenAPI openAPI() {
|
|
- return new OpenAPI()
|
|
+ Info info = new Info()
|
|
- .info(new Info()
|
|
+ .title("Apache DolphinScheduler Api Docs")
|
|
- .title("Dolphin Scheduler Api Docs")
|
|
+ .description("Apache DolphinScheduler Api Docs")
|
|
- .description("Dolphin Scheduler Api Docs")
|
|
+ .version(getDsVersion());
|
|
- .version("V1"));
|
|
+ return new OpenAPI().info(info);
|
|
}
|
|
}
|
|
|
|
|
|
@Bean
|
|
@Bean
|
|
@@ -58,4 +68,12 @@ public class OpenAPIConfiguration implements WebMvcConfigurer {
|
|
.pathsToMatch("/v2/**")
|
|
.pathsToMatch("/v2/**")
|
|
.build();
|
|
.build();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private String getDsVersion() {
|
|
|
|
+ if (dsVersion != null) {
|
|
|
|
+ return dsVersion;
|
|
|
|
+ }
|
|
|
|
+ dsVersion = dsVersionDao.selectVersion().map(DsVersion::getVersion).orElse("unknown");
|
|
|
|
+ return dsVersion;
|
|
|
|
+ }
|
|
}
|
|
}
|