使用YApi优雅的管理接口

1,891 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。


在开发前后端分离的项目中,前后端交流最频繁的问题可能就是接口的定义了。比如后端更改了接口的参数,但是没有告诉来得及告诉前端就有可能造成bug。

YApi是一款高效、易用、功能强大的API管理平台YApi提供了项目管理接口管理Mock接口测试等功能。使用YApi可以很好的管理接口提高前后端的协作能力。

项目管理

YApi以项目的形式进行接口管理,用户以加入项目的形式获取响应的权限

  1. 创建项目

image.png image.png

  1. 修改项目基本信息 image.png

  2. 添加项目成员 image.png

image.png

接口管理

  1. 新增接口 点击添加接口按钮添加接口名称、请求方式和请求路径新增接口 image.png

  2. 修改接口信息 新增之后可以在编辑页面完善接口信息,如请求参数、响应字段等

image.png

参数 image.png

响应 image.png

接口导入导出

在数据管理页面可以导入导出接口。YApi支持postmanswaggerharJson格式的数据导入。接口数据导出格式支持htmlmarkdownjsonswaggerjson.

image.png

Mock

在接口的编辑页面中在响应字段加上mock注解,可以指定mock时返回数据的格式

image.png

点击字段右边的齿轮按钮可以更灵活的定义数据格式,如在下图指定性别字段只返回男或女 image.png

测试 在接口基本信息中可以找到mock地址 image.png

在浏览器请求这个接口,可以看到返回的数据 image.png

接口测试

接口测试也是开发中最长用到的功能了。YApi提供分环境的接口测试。

image.png

在环境配置中可以新增其他环境 image.png

选择接口所在环境、填写参数后,点击运行接口测试 image.png

利用IDEA 插件一键导入开发好的接口

这个功能可以说对开发者特别友好了。写文档可以说是开发者最烦的一件事了,利用IDEA可以一键将接口信息导到YApi中。

需要写好注释

  1. 安装插件easy-yapi image.png

  2. 配置yapi所在服务器地址项目token image.png

在项目设置这里可以找到项目token image.png

  1. 创建实体,编写接口
/**
 * 书籍
 */
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 "删除成功";
    }
}
  1. 上传接口信息 鼠标左击选择生成或者按快捷键Alt + Insert打开生成页面,点击Export yapi即可 image.png

image.png

控制台出现一下信息说明已经上传成功 image.png

查看YApi可以看到接口信息已经上传到YApiimage.png

image.png