引入
现在的项目大多数都是前后端分离,所以对于后端开发,我们需要一个接口工具帮我们进行接口的整理、也方便我们测试。推荐postMan和Swagger形式,然后postMan需要自己手写接口,然后参数需要手动粘贴,但是相比于它,Swagger就相对方便很多了,他会根据后台的代码,然后自动生成接口以及参数名。
应用
- 在pom.xml中引入相应的依赖jar包
- 配置Swagger2配置文件`
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.ten.base.controller"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder().title("Springboot-api文档")
.description("").termsOfServiceUrl("")
.version("1.0").build();
}
}`
注意:需要将下面红框中改成自己的的controller路径,否则swagger页面不显示;
3.然后在相应接口加上Swagger注解
package com.ten.base.controller;
import com.mysql.cj.x.protobuf.Mysqlx;
import com.ten.base.pojo.Label;
import com.ten.base.service.LableService;
import entity.Result;
import entity.StatusCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
//加上这个方法后,以后json不需要加responseBody
@RestController
//跨域请求
/*@CrossOrigin*/
@RequestMapping("/label")
//Swagger注解
@Api("LabelController相关的Api")
public class LabelController {
@Resource
public LableService lableService;
@ApiOperation(value = "查询所有数据")
// @GetMapping(value = "{/findAll}")
@RequestMapping(method = RequestMethod.GET)
public Result findAll(){
return new Result(true,0000,"查询成功",lableService.findAll());
}
//swagger注解
@ApiOperation(value = "根据ID查找信息")
@GetMapping(value = "{/findById}/lableId")
public Result findById(@ApiParam(value = "项目ID") @PathVariable String lableId){
return new Result(true,0000,"查询成功",lableService.findById(lableId));
}
@ApiOperation(value = "保存数据")
@PostMapping(value = "{/save}")
public Result save(@RequestBody Label label){
lableService.add(label);
return new Result(true,0000,"baoc成功");
}
@ApiOperation(value = "更新数据")
@PutMapping(value = "{/update}")
public Result update( @PathVariable String lableId ,@RequestBody Label label){
lableService.update(label);
return new Result(true,0000,"更新成功");
}
@ApiOperation(value = "删除根据某个ID")
@DeleteMapping(value = "deleteById")
public Result deleteById( @PathVariable String lableId){
lableService.deleteById(lableId);
return new Result(true,0000,"删除成功");
}
@PostMapping("/search")
public Result findSearch(@RequestBody Label label){
List<Label> list=lableService.findSearch(label);
return new Result(true, StatusCode.OK,"查询成功",list);
}
}
备注:
- @Api :用在类上,说明该类的作用
- @ApiOperation:用在方法上,说明方法的作用
- @ApiModel:描述一个Model的信息
- @ApiModelProperty:实体中参数信息
4.启动服务测试,在浏览器中输入“http://localhost:9010/swagger-ui.html”,然后我们就可以看到相应的界面了。
5.如果不想手动输入 地址,可以在idea进行配置一下,就可以自动弹出页面了。