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>
配置 SwaggerConfig 的配置文件 — @EnableSwagger2 这个注解一定要开启,否则无法生成 Swagger 的接口文档的
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket docket() {
return new Docket(DocumentationType.SPRING_WEB)
.apiInfo(apiInfo())
//通过.select()方法,去配置扫描接口
.select()
//RequestHandlerSelectors配置如何扫描接口
.apis(RequestHandlerSelectors.basePackage("包名"))
// 配置如何通过path过滤,即这里只扫描请求以/news开头的接口
.paths(PathSelectors.any())
.build();
}
//配置文档信息
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("基于xxx云平台")
.description("全部接口")
.contact(new Contact("xxx", "http://xxx.xxx.com/联系人访问链接", "联系人邮箱"))
.version("0.2")
.build();
}
}
同时项目中的 application.yml 文件也需要配置一个属性
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher #启动Swagger2要配置的
说几个 Swagger 的注解 — @Api @ApiOperation ** 使用的最多的就是这两个注解用在 controller** 里面
@Api(tags = "用户登录注册接口")
@RestController
public class SecurityController {
@Autowired
private LoginAndLogoutServiceImpl loginAndLogoutService;
@Autowired
private UserRegisterServiceImpl userRegisterService;
@Autowired
private UserMapper userMapper;
@ApiOperation("用户登录")
@PostMapping("/login")
public Result login(@RequestParam("username") String username, @RequestParam("password") String password,
HttpServletResponse response){
response.setHeader("Access-Control-Allow-Origin","*");
Result result = loginAndLogoutService.login(username, password);
return result;
}
@ApiOperation("用户退出登录")
@DeleteMapping("/logout")
public Result logout(HttpServletResponse response){
response.setHeader("Access-Control-Allow-Origin","*");
Result result = loginAndLogoutService.logout();
return result;
}
@ApiOperation("用户注册")
@PostMapping("/register")
public Result register(@RequestParam("username") String username, @RequestParam("password") String password,
@RequestParam("identityCard") String identityCard, @RequestParam("gender") String gender,
@RequestParam("location") String location, @RequestParam("userImage") String userImage,
@RequestParam("phoneNumber") String phoneNumber,@RequestParam("role") String role,
HttpServletResponse response){
response.setHeader("Access-Control-Allow-Origin","*");
Result result = userRegisterService.userRegister(username, password, identityCard, gender, location, userImage, phoneNumber, role);
return result;
}
@GetMapping("/getUserInformation")
public Result getUserInformation(HttpServletResponse response, HttpServletRequest request){
response.setHeader("Access-Control-Allow-Origin","*");
Result userInformation = userRegisterService.getUserInformation(request);
return userInformation;
}
}