声明:本文内容不涉及任何 Apifox 的功能介绍,一来网上这方面的文章已经汗牛充栋,二来 Apifox 本身的用户体验做的非常好,对于开发者而言学习成本基本为零。

阮一峰:不管你是前端开发还是后端开发,只要项目是服务架构,它可能会大大提升你的开发效率。

虫师:我们很难把它描述为一款接口管理工具或接口自动化测试工具,它增强了团队协作能力,这对一个研发团队而言很重要。

池建强:Apifox,这是一代更比一代强。

什么是Apifox?

看了一众大咖们对 Apifox 赞不绝口,你可能会好奇 Apifox 究竟是何方神圣?根据官方定义,Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。如果你也曾使用过 Apifox,相信你会深表赞同。

111.webp

那么问题来了,在盛行小而美的 API 工具的当下,为什么会横空出世一个“瑞士军刀”般存在的 Apifox?答案就在 Apifox 的宗旨里面:节省研发团队的每一分钟。

在 Apifox 之前,为了达成对 API 语义的理解和实现上的一致性,前端、后端、测试使出十八般武艺,定义 API 用 Swagger,生成文档用 YAPI,前端自测用 Mock,接口测试用 Postman,性能测试用 JMeter,各类配置、数据、链接满天飞,重要的事情说三遍啊说三遍。有了 Apifox 之后,前端、后端、测试之间原本去中心化的 P2P 通讯方式变成以 Apifox 为中心的星型通讯方式,通讯对象从原本充满不确定性的人,变成稳定可靠的平台,各类配置、数据、链接也有了统一管理的地方,团队通讯成本和 API 管理成本大幅降低。

2222.webp

Apifox的野望

如果你认为一体化协作平台就是 Apifox 的一切,那你可能低估了 Apifox 的野心。

先来看下 Apifox 的收费模式,

33333.webp

是的,你没有看错,免费版即享“无任何限制”,不限团队人数、不限功能、不限项目数、不限接口数,如此奢华的免费套餐,放眼全网也很难找到第二家(SaaS 平台)。

再来看下更新日志,留意以下更新:

  1. [2021-03-14] 1.2.0 新增【在线分享接口文档】功能。
  2. [2021-10-29] 1.4.10 上线 API Hub功能。1)通过API Hub查找/发现他人公开的 API 项目。2)可将项目发布到API Hub(设置为公开项目即可),允许任何人通过API Hub访问、克隆该项目。
  3. [2022-01-11] 1.4.17 公开项目支持通过 web 访问、运行。

看懂了吗?API Hub 才是 Apifox 真正的野望,打造开放 API 共享平台,连接各类企业级 API,加速企业商业创新,成为企业之间的“交友”平台。有了 API Hub,企业之间谈合作,见面第一句话就是:PPT is cheap, show me the API!

Apifox的不足

要配得上如此宏大的野心,在我看来,Apifox 无论是架构上还是产品功能上都还有很长的路要走。

从架构上来看,首先要做的是提升项目中模型的地位。创建完一个新项目,首先应该定义模型,然后才是接口。我们知道,模型是一个软件的骨架,是一个系统的核心。接口是系统外在能力的呈现,模型是系统内在逻辑的载体。一旦脱离了模型,接口就是无源之水,无本之木。

其次,作为接口的诞生地,Apifox 不妨制定或者倡导一些好的 API 设计规约,像 Google AIP (API Improvements Proposal)Microsoft RESTFul API Design等。

从产品功能来看,不要局限于 Postman + Swagger + Mock + JMeter 这句 Slogan,以用户为中心,添加诸如一键生成单元测试代码、自动化测试源码编辑模式等实用功能,解决更多实际 API 开发过程中的痛点。

除此之外,官方资料中似乎没有看到大规模团队协作的案例,无论是SaaS版本还是私有化部署版本,平台所能支持的团队体量大小暂时未知。

展望

借微服务之东风,Apifox 自 2020 年 12 月 28 日推出 1.0 版本以来,以其独特的集成优势、优秀的用户体验,在国内IT界一时风光无两。不过在国外,似乎知者寥寥,stackoverflow 上甚至查无此人。随着今年 2 月份 2.0 英文版的推出,相信很快会吸引众多国外开发者的目光,祝愿 Apifox 走出国门,走向世界,早日成为国产软件之光!

参考

不仅仅是一把瑞士军刀 —— Apifox的野望和不足的更多相关文章

  1. 全栈project师?给把瑞士军刀你去砍鬼子好不好!?

    来自www.techgogogo.com 编者注:本文来自Medium前三名推荐文章,发文时已经获得高达2,125个推荐,中文版由天地会珠海分舵编译.全文对当今风靡业界的"全栈xx师&quo ...

  2. pathlib:处理文件路径的瑞士军刀

    pathlib是python3.4中引入的模块,专门用来处理路径的.个人觉得这是一个非常非常强大的模块,可以说是处理路径的一把瑞士军刀,下面我们就来看看它的功能. 在pathlib中有一个Path这个 ...

  3. 从锅炉工到AI专家(8)

    ImageNet 基础部分完成,从本篇开始,会略微的增加一些难度. 通常说,在解决问题的时候,大多程序员都会在网上搜索,寻找一些相似相近的案例作为参考.这个方式在机器学习领域同样有效.可惜早期的时候, ...

  4. JMeter(二十二)与其它工具对比(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter工具的扩展性非常好. JMeter工具是开源的.开源不仅仅意味着免费,更重要的是意味着用户可以通过开放的源代 ...

  5. 浅谈C、C++及其区别、兼容与不兼容

    一.闲说C C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言. 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是 ...

  6. Service Mesh架构的持续演进 单体模块化 SOA 微服务 Service Mesh

    架构不止-严选Service Mesh架构的持续演进 网易严选 王育松 严选技术团队 2019-11-25 前言同严选的业务一样,在下层承载它的IT系统架构一样要生存.呼吸.增长和发展,否则过时的.僵 ...

  7. Redis与KV存储(RocksDB)融合之编码方式

    Redis与KV存储(RocksDB)融合之编码方式 简介 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.Re ...

  8. 在 MAC OS X 安装 ADB (Android调试桥)

    什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...

  9. Docker简明教程

    Docker简明教程 [编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作 ...

随机推荐

  1. MySQL 字符集相关

    为了支持各个国家的不同语言,MySQL 从4.0 版本开始支持了很多种字符集,且每种字符集支持了 N 多种排序规则.我们可以在建表的时候指定字符集的排序规则,不指定时会有一个默认规则. 字符集和排序规 ...

  2. 依图语音API的C#封装以及调用进行语音转写的处理

    对于语音识别,一般有实时语音识别和语音文件的识别处理等方式,如在会议.培训等场景中,可以对录制的文件进行文字的转录,对于转录文字的成功率来说,如果能够转换90%以上的正确语音内容,肯定能减轻很多相关语 ...

  3. Flask 之 蓝图

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  4. AOP详解之三-创建AOP代理后记,创建AOP代理

    AOP详解之三-创建AOP代理后记,创建AOP代理. 上篇文章已经获取到了AOP的信息,接下来就是拿着这些AOP的信息去创建代理了. 首先我们看下创建AOP代理的入口处. //这个方法将返回代理类 p ...

  5. synchronized 与 lock锁的异同

    相同点: 二者都可以解决线程安全问题: 不同点: 1..Synchronized 是Java内置的关键字:Lock是一个Java类: 2.Synchronized 无法判断锁的状态:Lock可以判断是 ...

  6. 面试问题之数据库:SQL优化的具体操作

    转载于:https://www.cnblogs.com/wangzhengyu/p/10412499.html SQL优化的具体操作: 1.尽量避免使用select *,返回无用的字段会降低查询效率. ...

  7. 利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进 程的信息?

    ps -ef (system v 输出) ps -aux bsd 格式输出 ps -ef | grep pid

  8. Django获取请求的IP地址

    if request.META.get('HTTP_X_FORWARDED_FOR'): ip = request.META.get("HTTP_X_FORWARDED_FOR") ...

  9. Java入门之基础程序设计

    1.Java语言特点了解 1. java语言:   有些语言提供了可移植性.垃圾收集等机制,但是没有提供一个大型的库.如果想要有酷炫的绘图功能.网络连接功能或者数据库存取功能,就必须动手编写代码.Ja ...

  10. Anaconda 怎么安装cv2

    Anaconda run python程序的时候,如果有import cv2, 但是遇到报错的时候, 可以考虑在anaconda 中安装opencv, 安装过程非常简单. 什么是opencv , op ...