不仅仅是一把瑞士军刀 —— Apifox的野望和不足
声明:本文内容不涉及任何 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 平台)。
再来看下更新日志,留意以下更新:
- [2021-03-14] 1.2.0 新增【在线分享接口文档】功能。
- [2021-10-29] 1.4.10 上线 API Hub功能。1)通过API Hub查找/发现他人公开的 API 项目。2)可将项目发布到API Hub(设置为公开项目即可),允许任何人通过API Hub访问、克隆该项目。
- [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的野望和不足的更多相关文章
- 全栈project师?给把瑞士军刀你去砍鬼子好不好!?
来自www.techgogogo.com 编者注:本文来自Medium前三名推荐文章,发文时已经获得高达2,125个推荐,中文版由天地会珠海分舵编译.全文对当今风靡业界的"全栈xx师&quo ...
- pathlib:处理文件路径的瑞士军刀
pathlib是python3.4中引入的模块,专门用来处理路径的.个人觉得这是一个非常非常强大的模块,可以说是处理路径的一把瑞士军刀,下面我们就来看看它的功能. 在pathlib中有一个Path这个 ...
- 从锅炉工到AI专家(8)
ImageNet 基础部分完成,从本篇开始,会略微的增加一些难度. 通常说,在解决问题的时候,大多程序员都会在网上搜索,寻找一些相似相近的案例作为参考.这个方式在机器学习领域同样有效.可惜早期的时候, ...
- JMeter(二十二)与其它工具对比(转载)
转载自 http://www.cnblogs.com/yangxia-test JMeter工具的扩展性非常好. JMeter工具是开源的.开源不仅仅意味着免费,更重要的是意味着用户可以通过开放的源代 ...
- 浅谈C、C++及其区别、兼容与不兼容
一.闲说C C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言. 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是 ...
- Service Mesh架构的持续演进 单体模块化 SOA 微服务 Service Mesh
架构不止-严选Service Mesh架构的持续演进 网易严选 王育松 严选技术团队 2019-11-25 前言同严选的业务一样,在下层承载它的IT系统架构一样要生存.呼吸.增长和发展,否则过时的.僵 ...
- Redis与KV存储(RocksDB)融合之编码方式
Redis与KV存储(RocksDB)融合之编码方式 简介 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.Re ...
- 在 MAC OS X 安装 ADB (Android调试桥)
什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...
- Docker简明教程
Docker简明教程 [编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作 ...
随机推荐
- python学习之matplotlib实战
import numpy as np def main(): # print("hello") # line import matplotlib.pyplot as plt x = ...
- Spring AOP Xml配置过程及解释
目录 Spring AOP(基于xml) 专业术语: 基于xml的声明式AspectJ 具体实践 Spring AOP(基于xml) 目前主流的AOP框架有两个,分别是Spring AOP和Aspec ...
- SpringBoot整合RabbitMQ-5.7-课堂笔记-02
- maven国内镜像配置
Maven是当前流行的项目管理工具,但官方的库在国外经常连不上,连上也下载速度很慢.国内oschina的maven服务器很早之前就关了.今天发现阿里云的一个中央仓库,亲测可用. 1 <mirro ...
- 关于如何让写自然溢出hash的无辜孩子见祖宗这件事
关于如何让写自然溢出hash的无辜孩子见祖宗这件事 来源博客 这几天考试连着好几次被卡hash卡到死. 我谔谔,为什么连hash都要卡. 码力弱鸡什么时候才能站起来. 只需要任意两种字符,比如噫呜呜噫 ...
- Citus 分布式 PostgreSQL 集群 - SQL Reference(创建和修改分布式表 DDL)
创建和分布表 要创建分布式表,您需要首先定义表 schema. 为此,您可以使用 CREATE TABLE 语句定义一个表,就像使用常规 PostgreSQL 表一样. CREATE TABLE ht ...
- var、let和const区别
var.let和const区别 变量提升问题 var声明的变量存在变量提升,而let与const声明的变量不存在变量提升,但存在暂时性死区 即在预编译阶段,js引擎扫描代码时,遇到变量声明,会把var ...
- c#的委托实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Vue实例(1)
vue入门示例(一) herokang 2019-08-21 15:33:58 12696 收藏 44 分类专栏: 前端 文章标签: vue入门 版权 为了让广大后端人员更快的理解上手vue,我们 ...
- mysql 在已存在的表中添加/删除字段约束AUTO_INCREMENT遇到的问题
1. 在已存在的表中添加字段约束AUTO_INCREMENT修饰符 mysql> alter table user modify uid int auto_increment primary k ...