V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
apifox
V2EX  ›  推广

有没有人用过 Apifox,是不是可以扔掉 Postman 了?

  •  
  •   apifox · 2020-06-18 11:59:09 +08:00 · 9143 次点击
    这是一个创建于 539 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1 、Apifox 定位

    Apifox = Postman + Swagger + Mock + JMeter

    通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock 、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!

    2 、Apifox 功能

    1. 接口文档定义:Apifox 遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。
    2. 接口调试:Postman 有的功能,比如环境变量、预执行脚本、后执行脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且和 Postman 一样高效好用。
    3. 数据 Mock:内置 Mock.js 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的数据,具体在本文后面介绍。
    4. 接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是:JMeter 有的功能基本都会有,并且要更好用。
    27 条回复    2020-08-07 18:03:09 +08:00
    hjahgdthab750
        1
    hjahgdthab750  
       2020-06-18 12:36:39 +08:00
    生成 swagger 文档不是 web 框架的工作吗?
    sunmker
        2
    sunmker  
       2020-06-18 13:18:56 +08:00
    有没有人用过你?
    learningman
        3
    learningman  
       2020-06-18 13:50:35 +08:00
    lzyroot
        4
    lzyroot  
       2020-06-18 14:04:01 +08:00
    广东友文信息科技有限公司,会收集 api 吗😂
    apifox
        5
    apifox  
    OP
       2020-06-18 14:07:18 +08:00
    我们是前后端同步进入开发的。开发流程是:
    1 、前端(或后端)在 Apifox 上定好接口
    2 、前后端一起评审接口、填好用例
    3 、前端使用 Apifox 定好的接口 Mock 数据进入开发
    4 、后端使用 Apifox 调试接口,调试通过了,接口就开发完了
    5 、后端开发完后,测试使用 Apifox 的 [集合测试] 功能,测试完整的接口调用流程
    6 、前后端开发完,前端更换到正式数据,基本联调都会非常顺利,因为前后端双方都完全遵守了接口定义
    ming61177
        6
    ming61177  
       2020-06-18 14:10:23 +08:00
    如果我用 RAP2 + Postman 你这个有啥优势。。。。
    apifox
        7
    apifox  
    OP
       2020-06-18 14:10:35 +08:00
    我们以前是开发人员都用 Postman 来调试接口,但是没人愿意写接口文档,没有接口文档,前端开发就很痛苦,所以我们就想“如果有个类似 Postman 这样的工具,可以做到接口调试完了,就自动保存成接口文档,那该有多美好”

    然后就整出了这个 Apifox,同时做了非常多提升开发团队效率的工作,举个简单的例子:

    Apifox 如何做到高效率、零配置生成非常人性化的 mock 数据?

    1. Apifox 根据接口定义里的数据结构、数据类型,自动生成 mock 规则。
    2. Apifox 内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。如:名称包含字符串`image`的`string`类型字段,自动 mock 出一个图片地址 URL ;包含字符串`time`的`string`类型字段,自动 mock 出一个时间字符串;包含字符串`city`的`string`类型字段,自动 mock 出一个城市名。
    3. Apifox 根据内置规则,可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。
    4. 除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用 `正则表达式`、`通配符` 来匹配字段名自定义 mock 规则。
    apifox
        8
    apifox  
    OP
       2020-06-18 14:15:12 +08:00
    @ming61177

    [接口管理现状]

    一、常用解决方案

    1. 使用 Swagger 管理接口文档
    1. 使用 Postman 调试接口
    1. 使用 RAP Mock 数据
    1. 使用 JMeter 做接口自动化测试

    二、存在的问题
    维护不同工具之间数据一致性非常困难、非常低效。并且这里不仅仅是工作量的问题,更大的问题是多个系统之间数据不一致,导致协作低效,频繁出问题,开发人员痛苦不堪。

    1. 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。
    1. 前端开发 Mock 数据的时候又要去 RAP 定义一遍,手动设置好 Mock 规则。
    1. 测试人员需要去 JMeter 定义一遍。
    1. 前端根据 RAP Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自测试测试通过了,本以为可以马上上线,结果一对接发现各种问题:原来开发过程中接口变更,只修改了 Swagger,但是没有及时同步修改 RAP 。
    1. 同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。
    6. 时间久了,各种不一致会越来越严重。

    三、Apifox 就是为解决这个问题而生的
    ming61177
        9
    ming61177  
       2020-06-18 14:30:36 +08:00
    1 、Swagger 跟 RAP 是重叠的,只会选择一个
    2 、RAP 也支持 Swagger 导入 或者 Postman 导出
    3 、确定接口的定义方,比如后台开发人员或者前后台共同协商后制定接口,在 RAP 上也直接 Mock 了,接口锁定,前端与后端或接口测试都共同使用 RAP,但是修改接口参数的权限只有一个人,并不会带来管理上的混乱吧?
    hantsy
        10
    hantsy  
       2020-06-18 14:50:14 +08:00
    @apifox 这种流程倒是可以推的。

    和 CDC ( Consumer Driven Contract )理论上有几份相似,协议优先的 API 设计方法。

    Pact 也有专有的 Server 可以先运行事先定义 Contract 生成的 API,Consumer 和 Producer 端 分别实现。
    apifox
        11
    apifox  
    OP
       2020-06-18 14:51:47 +08:00
    @ming61177 建议下载一个 Apifox 体验下,相信你用的会喜欢上的。
    hantsy
        12
    hantsy  
       2020-06-18 14:52:11 +08:00
    PostMan 我好多年没用了,不过有邮件订阅,好像现在也开始做 API 设计方面的工具( Contract 优先,先出 Mocking API )。
    cumt21g
        13
    cumt21g  
       2020-06-18 15:45:32 +08:00
    问题还很多啊, 导入 /导出生成的 md 有点不知所谓了,
    生成代码里一堆 undefined
    apifox
        14
    apifox  
    OP
       2020-06-18 16:00:21 +08:00
    @cumt21g 加 Apifox 官网的联系方式,帮你解决
    hehe22
        15
    hehe22  
       2020-06-29 11:01:40 +08:00   ❤️ 2
    必须登录才能用,呵呵,还取代 postman
    caryxiao
        16
    caryxiao  
       2020-06-29 15:14:01 +08:00
    不能离线使用吗?能否保证不收集用户隐私数据, 接口这种东西是很敏感的。
    canzyp
        17
    canzyp  
       2020-06-29 17:55:18 +08:00
    下载完想体验下,让我注册,我就卸载了
    vxlol
        18
    vxlol  
       2020-06-29 21:49:06 +08:00
    为什么不能离线使用?是为了方便收集大家的 API 吗~~~?
    vxlol
        19
    vxlol  
       2020-06-29 21:49:40 +08:00
    @apifox 为什么不能离线使用?是为了方便收集大家的 API 吗~~~?
    apifox
        20
    apifox  
    OP
       2020-07-02 15:40:36 +08:00
    @vxlol 离线功能已经在规划中了

    后续功能规划

    1. 接口性能测试支持(类似 JMeter )
    2. 支持离线使用,项目可选择在线同步(团队协作)还是仅本地存储(单机离线使用)
    3. 提供私有化部署方案


    另外:Apifox 的 [环境] 里的变量可以设置 [本地值] ,本地值只保存在本地,不会同步到云端,token 、账号、密码之类的敏感数据适合放在 [本地值]
    apifox
        21
    apifox  
    OP
       2020-07-02 15:43:43 +08:00
    @caryxiao @canzyp 关于离线功能的说明如上。离线功能已经在规划中,token 、账号、密码之类的敏感信息使用 [本地值]功能(不会同步到云端)
    lvchaa
        22
    lvchaa  
       2020-07-03 15:53:44 +08:00
    用了一段时间, 很赞! 良心软件
    lusun
        23
    lusun  
       2020-07-07 17:03:10 +08:00
    @apifox 下载看了,做的很好,但感觉你们想要加的功能太多了,反而让人觉得很不舒适。
    fastzhong
        24
    fastzhong  
       2020-07-09 11:28:37 +08:00
    开源啊,测试,mock,等,很多需要根据项目定制,随着 api,微服务满天飞,这个有很广阔的应用场景。
    fastzhong
        25
    fastzhong  
       2020-07-09 11:36:40 +08:00
    xzjs
        26
    xzjs  
       2020-07-21 15:48:38 +08:00
    @apifox 用了一下还是很喜欢的,现在问题是 swagger 嵌套的返回识别不了,有办法让它识别么
    jangit
        27
    jangit  
       2020-08-07 18:03:09 +08:00
    好用+1,弄了一下午在 docker 上安装 yapi 没搞掂,换上这个马上上手了,可惜没有像 yapi 这样的离线部署
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3830 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:26 · PVG 16:26 · LAX 00:26 · JFK 03:26
    ♥ Do have faith in what you're doing.