swagger
API文档变成了前后端开发人员联系的纽带,变得越来越重要,swagger就是一款让你更好的书写API文档的框架
导入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
swagger配置文件的编写
@ComponentScan(basePackages = "com.sxj.swagger.controller") //扫描要编写的接口
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket customDocket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("标题")
.description("关于这个接口文档的描述")
.contact(new Contact("编写人","网址","邮箱"))
.version("1.0.0(版本)")
.build();
}
}
controller的编写,实际上任何东西都可以不写,但是我们应该做一些描述
这里模拟的数据库数据
中间的注释部分,我原本用foreach去遍历删除,最后报错(实现了效果,但最后出现了null),用Iterator就可以解决这个问题了
@RestController
@Api(value = "user接口") //这个写了也没什么用好像
public class UserController {
public static List<User> users = new ArrayList<>();
static {
users.add(new User("小明","123456"));
users.add(new User("小龙","12345678"));
}
@ApiOperation(value = "获取用户列表",notes = "就是获取所有的用户啊~") //方法描述
@GetMapping("/findAll")
public Object findAllUser(){
Map<String,Object> map = new HashMap<>();
map.put("users",users);
return map;
}
@PostMapping("/addUser/{user}")
public void addUser(@RequestBody User user){
users.add(user);
}
@DeleteMapping("/deleteUser/{name}")
public void delete(@PathVariable("name") String name){
Iterator<User> it = users.iterator();
while (it.hasNext()){
if (it.next().getName().equals(name)){
it.remove();
}
}
// for (User user:users
// ) {
// if (user.getName().equals(name)){
// users.remove(user);
// }
// } 删除,就很奇怪,用迭代就不报错了
}
@PutMapping("updateUser/{user}")
public void update(@RequestBody User user1){
for (User user:users
) {
if (user.getName().equals(user1.getName())) user.setPassword(user1.getPassword());
}
}
}
最后启动类也加上注解@EnableSwagger2就可以了
现在我们访问 localhost:8080/swagger-ui.html 就可以看文档了