一、自动生成API工具
1、Swagger:是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。支持多种语言,如:Scala、Java、Ruby、PHP、JavaScript等;
2、i /o docs:一种Restful风格的交互式文档系统;
3、Dexy:一款非常灵活的文档工具;
4、自己编写插件生成Api文档。
二、在SpringBoot中使用Swagger
1、引入依赖
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
<!-- swagger -->
2、新建Swagger配置类
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.william.springboot.springbootshiro.controller"))//扫描的包名
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot利用swagger生成api文档")
.description("简单优雅的restfun风格,自动生成api文档")
.termsOfServiceUrl("http://localhost:8080/swagger-ui.html")
.version("1.0")
.build();
}
}
3、编写接口入口
@Api(value="用户相关接口API",tags="用户接口")
@RestController
@RequestMapping("/user")
public class UserInfoController {
@ApiOperation(value = "查询用户根据ID", notes = "查询用户",produces = MediaType.APPLICATION_JSON_VALUE)
@ApiImplicitParam(name = "userid", value = "userid", required = true,paramType="path", dataType = "String")
@RequestMapping(value="/get/{userid}",method=RequestMethod.GET)
public String getUserById(@PathVariable("userid") String userid) {
System.out.println("-----"+userid);
/**
* dosomework
*/
System.out.println("---"+userid);
return "William";
}
@ApiOperation(value = "新增用户", notes = "保存")
@ApiImplicitParam(name = "userInfo", value = "userInfo", required = true, dataType = "UserInfo")
@PostMapping("/save")
public String addUser(@RequestBody UserInfo userInfo) {
/**
* dosomework
*/
return "success";
}
}
4、访问API自动文档
地址:项目路径/swagger-ui.html#/
至此,你的项目就成功集成了Swagger,大大方便了自己写API文档的劳动量,方便了前端调用接口联调。