对于 Web 产品来说, API 的重要性不言而喻,相信前后端工程师都深有体会。
关于 API 的开发流程,笔者咨询过一些朋友,也在面试的过程中问过一些候选人,抱随意的态度较多:口头约定、邮件约定、通过即时聊天工具发送,也有编写较详细的 Word 文档的。大家都被这么一个问题困绕着:想了解 API 的完整参数及含义,除了看源码之外别无他法。如果是自己编写的代码,短期内还能回想起来,如果是别人编写的代码,那可能看了源码也还是一知半解。
再说一个在开发中的常见现象。 API 中的 ID 字段,对类型“不敏感”的后端工程师,可能一会儿返回 number 类型,一会儿返回 string 类型。而前端工程师,都喜欢用“===”来判断,对类型有严格的要求。对于 number 类型,如果超过一定的位数,在浏览器端又会有溢出的问题。就这么一个类型不一致的问题,不知道浪费了全世界工程师的多少青春岁月。
所以,我们迫切需要这么一个产品:
- 方便地管理项目中的所有 API
- API 文档清晰直观并且方便查看
- 有自动化 API 测试工具,方便开发和测试工程师进行回归测试
- 有方便地生成规范的 API 的功能,比如 RESTful API
对于前端工程师来说,还有一个必不可少的功能: API 模拟容器(响应数据是根据 API 定义 MOCK 出来的),以便在后端没有开发好接口之前就能进行页面开发。这个 API 模拟容器对代码没有侵入性,即前端编写的代码,上线时不需要进行任何处理。
就笔者的观察,能满足以上需求的工具在整个业界(包括国外)都还很少见。
今天向大家推荐一款 API 管理产品:NEI 接口管理平台(以下简称 NEI )。
NEI 是网易杭研前端技术部推出的一款产品,旨在帮助项目团队更好的管理 API 接口。 NEI 是杭研前端团队多年的技术沉淀,是很多位资深工程师的丰富经验总结,之前一直只对网易内部用户使用,今年 9 月初正式对外开放。
下面大致地介绍一下 NEI 。
NEI 按项目来管理所有资源,资源的创建和维护可由团队成员协作完成,目前它已经提供了以下功能:
- 项目管理:动态、团队管理、权限管理、项目文档等
- 页面管理:项目中的页面定义
- 异步接口:即本文所说的 API
- 接口测试和用例管理:方便回归测试和生成测试代码
- 数据模型: NEI 中最强大的功能之一,对应数据库中的实体对象
- 页面模板: NEI 配套的构建工具会根据定义生成模板文件
- 规则函数:自定义 MOCK 数据, NEI 也预置了常见的规则函数
- 业务分组:按照业务对项目资源进行细分,方便管理
- 工程规范:本身可以当作脚手架,也可以和 NEI 项目结合,集成项目中的 API 和数据模型
- 消息中心:保证重要的操作能及时通知到相关负责人
下面是几篇介绍文章:
以上所有文章都放在 Github 仓库的 doc 目录下:NEI 配套构建工具。
如果 NEI 能解决您遇到的一些麻烦事儿,那就赶紧去试试吧。
最后,也欢迎大家在使用的过程中给我们提建议和意见:
- 需求提议地址:Issues · NEYouFan/nei-toolkit · GitHub
- NEI QQ 交流群号: 453281988
目前 NEI 已经托管在网易云上,在此也非常感谢网易云提供的服务。