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

面向接口编程的一些思考(接口管理、接口健康监控)

  •  
  •   liyj144 ·
    liyj144 · 2016-09-29 11:15:05 +08:00 · 5337 次点击
    这是一个创建于 2978 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近期接手一个项目,主要负责前端部分,其中会有很大一部分工作是和后端做联调工作。项目下来思考了一下有以下感悟:

    1. 虽然提前定义好接口很重要,但是到后期一定会有一些改动(因为前期设计上的不合理、中期产品经理需求更改或其他)。所以自动化完成接口的书写和 mock 很重要。
    2. 前后端连调时因为接口没按规划对接或者服务器环境出问题( 502 、 504 要不要这么多)会耽搁双方的时间,这个是大不必要的。所以接口的健康度监控很重要。

    所以我考虑做一个 API 的管理和监控工具,基本功能有:

    1. 接口文档和 mock 通过代码自动生成。
    2. 接口版本管理。
    3. 接口健康度监控,可以定时或手动的调用 mock 或是正式的接口(可以通过一个开关控制)。首页可以是一个项目所有接口的 dashboard 监控展示,点击每一项可以看到这个接口的监控或是出错信息。

    以上第一点通过 swagger+spring mvc 的方式基本实现,在 spring 中通过 java doc 的方式定义接口然后自动反映到 swagger ui 上。第二点和第三点暂时还在规划中。 不晓得各位在公司是否已经有类似的工具实现以上功能,帮忙提供些解决思路或方案。谢谢。

    9 条回复    2016-09-29 17:35:00 +08:00
    liyj144
        1
    liyj144  
    OP
       2016-09-29 11:24:04 +08:00
    监控第三点(接口健康度监控),在 github 上有个叫 statusok[https://github.com/sanathp/statusok] 的工具看起来不错,今天会结合起来试一试。
    HypoChen
        2
    HypoChen  
       2016-09-29 15:45:45 +08:00
    真相只有一个!
    HypoChen
        3
    HypoChen  
       2016-09-29 15:47:06 +08:00   ❤️ 1
    tyk 怎么样
    9hills
        4
    9hills  
       2016-09-29 15:57:48 +08:00   ❤️ 1
    Google 内部使用的类似于开源了的这个: http://www.grpc.io/
    但是少了这么一些 Google 内部的东西
    1. NamingService ,上下游连接不用指定 IP&PORT
    2. 自生成文档
    3. 自动生成的 Mock
    4. 接口的自动化监控数据输出

    lz 可以在这个基础上完善。。
    holyghost
        5
    holyghost  
       2016-09-29 15:59:12 +08:00
    额 是我一直理解错了吗

    面向接口变成的接口指的是 interface 不是 API 吧?
    gino86
        6
    gino86  
       2016-09-29 17:08:23 +08:00
    @holyghost 可以查一下 API 是什么意思
    holyghost
        7
    holyghost  
       2016-09-29 17:09:43 +08:00 via iPhone
    @gino86 太感谢你了,我这就去查。
    liyj144
        8
    liyj144  
    OP
       2016-09-29 17:33:09 +08:00
    @HypoChen 看了下 tyk , 功能很强大,可以直接导入 swagger 文档。 容我膜拜一会。
    liyj144
        9
    liyj144  
    OP
       2016-09-29 17:35:00 +08:00
    @9hills 好的, 我这就去瞅瞅。多谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2684 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.