up:: SpringBoot电商项目商品分类模块使用Valid注解校验入参
说明:
(1) Swagger的主要作用是【生成API文档】;而且,当我们项目更新的时候,Swagger也会实时更新;
一:引入并配置Swagger;
1.在pom.xml中,引入Swagger所需的依赖;
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
说明:
(1) 依赖说明;
2.在程序入口处MallApplication,使用【@EnableSwagger2注解】:开启Swagger;
3.创建SpringFoxConfig类,去配置Swagger;
SpringFoxConfig类:
package com.imooc.mall.config;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
public class SpringFoxConfig {
//访问http://localhost:8083/swagger-ui.html可以看到API文档
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("慕慕生鲜")
.description("")
.termsOfServiceUrl("")
.build();
}
}
说明:
(1) 这个配置文件,一般是不需要我们自己去写的;其是一个模板化代码,以后当我们需要的时候,直接过来copy就行了,然后再根据我们的需要微调即可;
4.创建ImoocMallWebMvcConfig类,去配置地址映射;
package com.imooc.mall.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 描述: 配置地址映射
*/
@Configuration
public class ImoocMallWebMvcConfig implements WebMvcConfigurer {
@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/");
}
}
说明:
(1) 这儿又一次使用到了【@Configuration注解】,说明这个类是个配置类;第一次遇到【@Configuration注解】是在【JavaConfig-对象实例化】;
(2) 配置内容分析;
(3) 这儿的内容,也没必要记忆,需要的时候,过来copy就行了;
二:使用Swagger;
1.访问Swagger文档地址;然后,可以通过【@ApiOperation(“接口描述信息”)】去说明,接口的基本信息;
启动项目;然后访问我们在SpringFoxConfig中配置的【http://localhost:8083/swagger-ui.html】这个地址;
可以看到,项目中所有的url对外暴露的接口,给收集到这儿;那么以后,如果我们要和其他人进行文档交互的时候,我们直接提供 【http://localhost:8083/swagger-ui.html】这个地址,对方就能知道我们有哪些接口了;
我们可以在接口上,使用【@ApiOperation(“接口描述信息”)】去说明,接口的基本信息;
重启项目,刷新页面: