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

2016-09-29 11:15:05 +08:00
 liyj144

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

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

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

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

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

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

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

面向接口变成的接口指的是 interface 不是 API 吧?
gino86
2016-09-29 17:08:23 +08:00
@holyghost 可以查一下 API 是什么意思
holyghost
2016-09-29 17:09:43 +08:00
@gino86 太感谢你了,我这就去查。
liyj144
2016-09-29 17:33:09 +08:00
@HypoChen 看了下 tyk , 功能很强大,可以直接导入 swagger 文档。 容我膜拜一会。
liyj144
2016-09-29 17:35:00 +08:00
@9hills 好的, 我这就去瞅瞅。多谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/309716

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX