在项目中引入Swagger,方便前后端进行接口的定义、测试和联调
引入依赖
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> </dependency>
|
配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @Configuration @EnableSwagger2 public class SwaggerConfig {
@Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.lemon.swagger")) .paths(PathSelectors.any()) .build(); }
private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("api文档") .description("RESTFUL接口") .version("1.0").build(); } }
|
@EnableSwagger2
启动Swagger
Docket
制定配置信息和扫描包的路径
测试
1 2 3 4 5 6 7 8 9 10 11 12
| @RestController @RequestMapping("/api/test") public class TestController {
@RequestMapping(value = "/show", method = RequestMethod.POST) @ApiOperation(value = "测试接口", notes = "测试接口详细描述") public String show( @ApiParam(required = true, name = "name", value = "姓名") @RequestParam(name = "name") String strName) { return "输入的姓名为------->" + strName; } }
|
启动项目,在浏览器上输入访问地址http://127.0.0.1:8080/swagger-ui.html即可
Swagger常用注解
- @Api 作用在类上,说明该类的作用
- @ApiOperation 作用在方法上,说明方法的作用,标注在具体的请求上,value和notes作用差不多,都是对请求进行说明,tags则是对请求进行分类的,比如你有好几个controller,分别属于不同的功能模块,那这里我们就可以使用tags来区分了
- @ApiImplicitParams 用在方法上包含一组参数说明
- @ApiImplicitParam 用在@ApiImplicitParams注解中,制定一个请求参数的各个方面
- @ApiResponses 用于表示一组响应
- @ApiResponse 用在@ApiResponses中,一版用于表达一个错误的响应信息
- @ApiModel 描述一个Model的信息,表明这是一个被swagger框架管理的model,用于class上