小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
在开发前后端分离的项目中,前后端交流最频繁的问题可能就是接口的定义了。比如后端更改了接口的参数,但是没有告诉来得及告诉前端就有可能造成bug。
YApi是一款高效、易用、功能强大的API管理平台。YApi提供了项目管理、接口管理、Mock、接口测试等功能。使用YApi可以很好的管理接口提高前后端的协作能力。
项目管理
YApi以项目的形式进行接口管理,用户以加入项目的形式获取响应的权限
- 创建项目
-
修改项目基本信息
-
添加项目成员
接口管理
-
新增接口 点击添加接口按钮添加接口名称、请求方式和请求路径新增接口
-
修改接口信息 新增之后可以在编辑页面完善接口信息,如请求参数、响应字段等
参数
响应
接口导入导出
在数据管理页面可以导入导出接口。YApi支持postman、swagger、har、Json格式的数据导入。接口数据导出格式支持html、markdown、json、swaggerjson.
Mock
在接口的编辑页面中在响应字段加上mock注解,可以指定mock时返回数据的格式
点击字段右边的齿轮按钮可以更灵活的定义数据格式,如在下图指定性别字段只返回男或女
测试
在接口基本信息中可以找到mock地址
在浏览器请求这个接口,可以看到返回的数据
接口测试
接口测试也是开发中最长用到的功能了。YApi提供分环境的接口测试。
在环境配置中可以新增其他环境
选择接口所在环境、填写参数后,点击运行接口测试
利用IDEA 插件一键导入开发好的接口
这个功能可以说对开发者特别友好了。写文档可以说是开发者最烦的一件事了,利用IDEA可以一键将接口信息导到YApi中。
需要写好注释
-
安装插件
easy-yapi -
配置
yapi所在服务器地址和项目token
在项目设置这里可以找到项目token
- 创建实体,编写接口
/**
* 书籍
*/
public class Book {
/**
* id
*/
private Integer id;
/**
* 书名
*/
private String bookName;
/**
* 价格
*/
private BigDecimal price;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
}
/**
* 书籍管理
*/
@RestController
public class BookController {
/**
* 根据id查询书籍详情
*
* @param id 书籍id
* @return com.example.demo.entity.Book
**/
@GetMapping("books/{id}")
public Book getBookById(@PathVariable("id") Integer id){
Book book = new Book();
book.setId(id);
book.setBookName("葵花宝典: " + id);
book.setPrice(BigDecimal.valueOf(new Random(1000).nextInt()));
return book;
}
/**
* 修改书籍信息
*
* @param book 书籍
* @return java.lang.Integer
**/
@PutMapping("books")
public Integer updateBook(@RequestBody Book book){
return book.getId();
}
/**
* 删除书籍
*
* @param id 书籍id
* @return java.lang.String
**/
@DeleteMapping("books/{id}")
public String delBook(@PathVariable("id") Integer id){
return "删除成功";
}
}
- 上传接口信息
鼠标左击选择
生成或者按快捷键Alt + Insert打开生成页面,点击Export yapi即可
控制台出现一下信息说明已经上传成功
查看YApi可以看到接口信息已经上传到YApi中