如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了
源码地址:https://github.com/keer123456789/springbootstudy/tree/master/swaggerdemo
1 介绍
最近在工作中接触到了swagger
API工具,这个真的是太美好了,之前就想找一个这个API工具,对于API很多的项目,这个简直就是提高开发效率,节省文档。
2 maven依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
3 编辑Swagger配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//需要扫描的API(controller)包名
.apis(RequestHandlerSelectors.basePackage("com.keer.swaggerdemo.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 网页上的一些配置,标题,版本等等
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swaager Demo Rest API")
.contact("可耳")
.version("v1.0")
.build();
}
}
4 创建Controller
主要是介绍Swagger,这个工具主要是在controller层进行管理,就不在添加Service和Dao层的逻辑。
4.1 添加类注解
@API
用来描述这个Controller的功能。
@RestController
@Api(tags = "swagger demo API info")
public class Controller {}
4.2方法注解
@ApiOperation
: 描述这个方法的功能@ApiImplicitParam
:对如参的解释,name:参数名称,value:参数描述,required:是否必须,dataType:参数类型
@RestController
@Api(tags = "swagger demo API info")
public class Controller {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@PostMapping("/postTest")
@ApiOperation(value = "post method,data is json", notes = "输入用户信息")
@ApiImplicitParam(name = "user", value = "用户实体", required = true, dataType = "User")
public String postMethod(@RequestBody User user) {
logger.info("接收到post请求:" + user.toString());
return "传来数据: " + user.toString();
}
@GetMapping("/getTest")
@ApiOperation(value = "get method")
public String getMethod() {
logger.info("接收到get请求");
return "Swagger demo test for keer";
}
}
5 页面展示
访问:http://127.0.0.1:8080/swagger-ui.html
页面如下:标注起来的都是在配置信息时编辑好的
点击Swagger demo API Info
,就会看到全部方法:
分别点击相应的方法,填入需要的参数,点击try it out
按钮即可调用此方法
如图post方法: