X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2FSwaggerConfig.java;h=df5e7b4fb72a4caff69be26d2c45cd409e16a795;hb=a538ca7e0b840e8dc20e85c1864697823ad96ae0;hp=f3b4a5a499662ce950aaec3d0f19df46962f382e;hpb=3e827b5c2bc00500577af25e9cb559b6243e1abd;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/SwaggerConfig.java b/policy-agent/src/main/java/org/oransc/policyagent/SwaggerConfig.java index f3b4a5a4..df5e7b4f 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/SwaggerConfig.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/SwaggerConfig.java @@ -20,11 +20,17 @@ package org.oransc.policyagent; +import com.google.common.base.Predicates; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @@ -37,12 +43,48 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; */ @Configuration @EnableSwagger2 -public class SwaggerConfig { +public class SwaggerConfig extends WebMvcConfigurationSupport { + + static final String API_TITLE = "Policy server"; + static final String DESCRIPTION = "This page lists all the rest apis for Policy server."; + static final String VERSION = "1.0"; + static final String RESOURCES_PATH = "classpath:/META-INF/resources/"; + static final String WEBJARS_PATH = RESOURCES_PATH + "webjars/"; + static final String SWAGGER_UI = "swagger-ui.html"; + static final String WEBJARS = "/webjars/**"; + + /** + * Gets the API info. + * + * @return the API info. + */ @Bean public Docket api() { - return new Docket(DocumentationType.SWAGGER_2).select() // - .apis(RequestHandlerSelectors.basePackage("org.oransc.policyagent.controllers")) // + return new Docket(DocumentationType.SWAGGER_2) // + .apiInfo(apiInfo()) // + .select() // + .apis(RequestHandlerSelectors.any()) // .paths(PathSelectors.any()) // + .paths(Predicates.not(PathSelectors.regex("/error"))) // + // this endpoint is not implemented, but was visible for Swagger + .build(); + } + + private static ApiInfo apiInfo() { + return new ApiInfoBuilder() // + .title(API_TITLE) // + .description(DESCRIPTION) // + .version(VERSION) // .build(); } + + @Override + protected void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler(SWAGGER_UI) // + .addResourceLocations(RESOURCES_PATH); + + registry.addResourceHandler(WEBJARS) // + .addResourceLocations(WEBJARS_PATH); + } + }