新手上路-搭建項目-springboot-swagger2

新手上路-搭建項目-springboot-swagger2

swagger2 是一個接口文檔軟件
  • 界面以下html

swagger2測試

gradle添加

compile("io.springfox:springfox-swagger2:$swagger2Version")
compile("io.springfox:springfox-swagger-ui:$swaggerUi")
  • 這裏使用2.4.0版本能夠正常使用java

swagger2配置文件

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@Configuration
public class Swagger2Config {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.seal_de.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger2測試")
                .description("新手上路-swagger2。https://git.oschina.net/sealde/springboot-javaconfig/tree/dev2")
                .termsOfServiceUrl("https://git.oschina.net/sealde/springboot-javaconfig/tree/dev2")
                .version("0.0.1")
                .contact(new Contact("seal_de", "https://git.oschina.net/sealde", "seal.de@foxmail.com"))
                .build();
    }
}

配置資源處理器

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    ...
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
    
    ...
}

注意事項

  • 若是有配置token驗證等機制,建議將swagger2的一些請求放行git

  • 下面只是一個例子,看實際狀況進行配置web

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    ...

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
       registry.addInterceptor(new TokenInterceptor(tokenManager))
               .addPathPatterns("/**").excludePathPatterns("/configuration/ui", "/configuration/security", "/v2/api-docs", "/swagger**");
    }
    
    ...
 }

最後

相關文章
相關標籤/搜索