X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2FSwaggerConfig.java;h=5f61e3128eba487595d14559fe9fe2734049f4ee;hb=f93e105a428fcf22795effb23ac17f1472ba5f7e;hp=07dbefdf920afe7d0fcacd26f20d796688baaae3;hpb=6f86ab364ac739951556bf2d5bf70429b518de47;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java index 07dbefdf..5f61e312 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/SwaggerConfig.java @@ -20,76 +20,81 @@ package org.oransc.enrichment; -import com.fasterxml.classmate.TypeResolver; -import com.google.common.base.Predicates; +import io.swagger.v3.oas.annotations.OpenAPIDefinition; +import io.swagger.v3.oas.annotations.info.Info; +import io.swagger.v3.oas.annotations.info.License; +import io.swagger.v3.oas.annotations.tags.Tag; -import org.oransc.enrichment.controllers.consumer.ConsumerEiJobInfo; -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; +import org.oransc.enrichment.controllers.StatusController; +import org.oransc.enrichment.controllers.a1e.A1eConsts; +import org.oransc.enrichment.controllers.r1consumer.ConsumerConsts; +import org.oransc.enrichment.controllers.r1producer.ProducerConsts; /** - * Swagger configuration class that uses swagger2 documentation type and scans + * Swagger configuration class that uses swagger documentation type and scans * all the controllers. To access the swagger gui go to * http://ip:port/swagger-ui.html */ -@Configuration -@EnableSwagger2 -public class SwaggerConfig extends WebMvcConfigurationSupport { - - static final String API_TITLE = "Enrichment Data service"; - static final String DESCRIPTION = "This page lists all the rest apis for the service."; - static final String VERSION = "1.0"; - @SuppressWarnings("squid:S1075") // Refactor your code to get this URI from a customizable parameter. - 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(TypeResolver resolver) { - return new Docket(DocumentationType.SWAGGER_2) // - .apiInfo(apiInfo()) // - .additionalModels(resolver.resolve(ConsumerEiJobInfo.class)) // - .select() // - .apis(RequestHandlerSelectors.any()) // - .paths(PathSelectors.any()) // - .paths(Predicates.not(PathSelectors.regex("/error"))) // - // this endpoint is not implemented, but was visible for Swagger - .paths(Predicates.not(PathSelectors.regex("/actuator.*"))) // - // this endpoint is implemented by spring framework, exclude for now - .build(); +@OpenAPIDefinition( // + tags = { // + @Tag(name = A1eConsts.CONSUMER_API_NAME, description = A1eConsts.CONSUMER_API_DESCRIPTION), + @Tag(name = A1eConsts.CONSUMER_API_CALLBACKS_NAME, description = A1eConsts.CONSUMER_API_CALLBACKS_DESCRIPTION), + @Tag( + name = ProducerConsts.PRODUCER_API_CALLBACKS_NAME, + description = ProducerConsts.PRODUCER_API_CALLBACKS_DESCRIPTION), + @Tag(name = ProducerConsts.PRODUCER_API_NAME, description = ProducerConsts.PRODUCER_API_DESCRIPTION), // + @Tag(name = StatusController.API_NAME, description = StatusController.API_DESCRIPTION), // + @Tag(name = ConsumerConsts.CONSUMER_API_NAME, description = ConsumerConsts.CONSUMER_API_DESCRIPTION), // + }, // + info = @Info( + title = SwaggerConfig.API_TITLE, // + version = "1.0", // + description = SwaggerConfig.DESCRIPTION, // + license = @License( + name = "Copyright (C) 2020 Nordix Foundation. Licensed under the Apache License.", + url = "http://www.apache.org/licenses/LICENSE-2.0"))) +public class SwaggerConfig { + private SwaggerConfig() { } - private static ApiInfo apiInfo() { - return new ApiInfoBuilder() // - .title(API_TITLE) // - .description(DESCRIPTION) // - .version(VERSION) // - .build(); - } + static final String API_TITLE = "Data management and exposure"; - @Override - protected void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler(SWAGGER_UI) // - .addResourceLocations(RESOURCES_PATH); - - registry.addResourceHandler(WEBJARS) // - .addResourceLocations(WEBJARS_PATH); - } + static final String DESCRIPTION = "
" //
+ + " The service is mainly a broker between data producers and data consumers. A data producer has the ability to produce one or several types of data (Information Type). One type of data can be produced by zero to many producers.
A data consumer can have several active data subscriptions (Information Job). One Information Job consists of the type of data to produce and additional parameters for filtering of the data. These parameters are different for different data types." //
+ + "
" // + + " This API is between Near-RT RIC and the Non-RT RIC." // + + " The Near-RT RIC is a data consumer, which creates Information Jobs to subscribe for data." // + + " In this context, the information is referred to as 'Enrichment Information', EI." // + + "
" // + + "" // + + " This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface." // + + " The API is for use by different kinds of data producers and provides support for:" // + + "
" // + + " This API is provided by the Non-RT RIC platform and is intended to be part of the O-RAN R1 interface." // + + " The API is for use by different kinds of data consumers and provides support for:" // + + "
" // + + " This API provides a means to monitor the health of this service." // + + "
"; }