- Adding the Maven Dependency123456789101112131415161718192021
<properties><swagger.version>2.9.2</swagger.version></properties><dependencies><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger.version}</version><exclusions><exclusion><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></exclusion></exclusions></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger.version}</version></dependency></dependencies> - create the configuration class to enable swagger2 interface.
importjava.util.Arrays;importjava.util.HashSet;importjava.util.Set;importjavax.servlet.ServletContext;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importspringfox.documentation.builders.ApiInfoBuilder;importspringfox.documentation.builders.ParameterBuilder;importspringfox.documentation.builders.PathSelectors;importspringfox.documentation.builders.RequestHandlerSelectors;importspringfox.documentation.schema.ModelRef;importspringfox.documentation.service.ApiInfo;importspringfox.documentation.service.Contact;importspringfox.documentation.spi.DocumentationType;importspringfox.documentation.spring.web.plugins.Docket;importspringfox.documentation.swagger2.annotations.EnableSwagger2;/*** @author sunilkumar.gutti*/@Configuration@EnableSwagger2publicclassSwaggerConfigextendsWebMvcConfig {privatestaticfinalSet<String> DEFAULT_PRODUCES_AND_CONSUMES =newHashSet<>(Arrays.asList("application/json","application/xml"));@BeanpublicDocket api(ServletContext servletContext) {/** return new Docket(DocumentationType.SWAGGER_2).select()* .paths(PathSelectors.regex("/mobile*")).build().apiInfo(apiInfo()).* produces(DEFAULT_PRODUCES_AND_CONSUMES)* .consumes(DEFAULT_PRODUCES_AND_CONSUMES);*/returnnewDocket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build().globalOperationParameters(Arrays.asList(newParameterBuilder().name("Tenant-Ref").description("Teanant Reference (CORE_DB/DEV/QA)").modelRef(newModelRef("string")).parameterType("header").required(true).build()))/** .pathProvider(new RelativePathProvider(servletContext) {** @Override public String getApplicationBasePath() { return* "/"; } })*/.pathMapping("").apiInfo(apiInfo()).produces(DEFAULT_PRODUCES_AND_CONSUMES).consumes(DEFAULT_PRODUCES_AND_CONSUMES);}privateApiInfo apiInfo() {returnnewApiInfoBuilder().title("CT REST API").description("Control Tower API").contact(newContact("Blujay Solutions Team","www.blujaysolutions.com","")).license("Blujay License Version 1.0")}@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");super.addResourceHandlers(registry);}} - deploy the latest war file and open the browser and type the URL as below
E.g: http://localhost:8080/SOA/swagger-ui.html
4. enter the API-end point as "http://localhost:8080/SOA/mobile" and click ok to see the API documentation as below.

5. Now we can see the rest end-points as below

No comments:
Post a Comment