业务规范之springboot整合swagger2

业务规范(整合swagger2)

###业务规范之springboot整合swagger2
###业务规范之统一验证
###业务规范之统一返回体
###业务规范之统一异常处理和统一响应

二、整合swagger2

这里用到swagger2:

导入jar包:

	<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>

swagger2配置:

//@Profile({"dev", "test"})// 设置 dev test 环境开启 prod 环境就关闭了
@Configuration
@EnableSwagger2
public class Swagger2Config {

    //api接口包扫描路径
    public static final String SWAGGER_SCAN_BASE_PACKAGE = "cn.mesmile.demo.model";

    public static final String VERSION = "1.0.0";

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .host("127.0.0.1:8080")
                .apiInfo(apiInfo())
                // 是否开启swagger
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))
                // 可以根据url路径设置哪些请求加入文档,忽略哪些请求
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("练习demo")
                .description("单词计数服务 API 接口文档") // 设置文档的描述
                .version(VERSION)
                .termsOfServiceUrl("http://www.mesmile.cn")
                .build();
    }
}

前后端跨越以及swagger映射配置:

@Configuration
public class CorsConfig extends WebMvcConfigurationSupport {

    /**
     * 解决跨越的问题
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                //允许跨域的域名,可以用*表示允许任何域名使用
                .allowedOrigins("*")
                //允许任何方法(post、get等)
                .allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
                //带上cookie信息
                .allowCredentials(true)
                //允许任何请求头
                .allowedHeaders("*")
                //maxAge(3600)表明在3600秒内,不需要再发送预检验请求,可以缓存该结果
                .maxAge(3600);
    }

	/**
	*	swagger 资源映射
	*/
    @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/");
    }

    //解决中文乱码问题
    @Bean
    public HttpMessageConverter<String> responseBodyConverter() {
        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
        return converter;
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        converters.add(responseBodyConverter());
    }

}

你可能感兴趣的:(业务规范)