Java tutorial
package com.approdorix.user; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.databind.Module; import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; import com.google.common.base.Predicate; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import static com.google.common.base.Predicates.or; import static springfox.documentation.builders.PathSelectors.regex; @EnableSwagger2 @SpringBootApplication @Import({ SecurityConfiguration.class }) public class UsersApplication { public static void main(String[] args) { SpringApplication.run(UsersApplication.class, args); } @Bean public Module parameterNamesModule() { return new ParameterNamesModule(JsonCreator.Mode.PROPERTIES); } @Bean public Docket fullApi() { return new Docket(DocumentationType.SWAGGER_2).groupName("full-api").apiInfo(apiInfo()).select() .paths(apiPaths()).build(); } private Predicate<String> apiPaths() { return or(regex("/api/api.*"), regex("/api/user.*")); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("Users API").description("This is Identity Management API.") .termsOfServiceUrl("http://approdorix.com/").contact("piotr@pietrzak.me") .license("Apache License Version 2.0") .licenseUrl("https://github.com/piotrpietrzak/approdorix-users/blob/master/LICENSE").version("2.0") .build(); } }