研发效能 接口标准校验工具,大家有做过类似的工具么?

底层贫困人员 · 2021年10月25日 · 最后由 底层贫困人员 回复于 2021年10月26日 · 2983 次阅读

最近老板给我分配了个任务,设计接口标准校验工具,主要实现自动校验接口设计,快速验证接口规范性;就这一句话,都不知道做。。。
团队内目前使用的接口文档工具有 swagger 和 rap2,目前入手点就是接口文档,遍历里面的 JSON,看是否符合 JSON Schema?

共收到 9 条回复 时间 点赞

接口规范性,从这个名字猜测,像是验证是否符合 json schema 。不过这个猜测没啥意义,老板的用词不一定那么讲究。

但建议你和你老板聊下,了解清楚他想达到什么目标,再看对应做什么可以达到他的目标?

陈恒捷 回复

问过了,就聊得比较含糊,给了我一份 Excel 表(接口标准)里面包含几大规范,接口文档规范、接口设计规范、接口命名规范、异常处理规范,比较好实现就是接口文档规范和接口命名规范,接口设计规范和异常处理规范,这两项都是需要入参,难实现,譬如接口设计规范其中一项,新增/编辑接口, 需在响应中包括 isSuccess、responseCode、responseMsg、data 四个参数,data 中需返回对应新增的数据 id, 以提高接口响应可信度及易测性(若新增涉及多个表,data 中需返回主表对应新增的数据 id)
(如:{"isSuccess":true,"responseCode":0,"responseMsg":"操作成功","data":{"id":"6078f109c224ec791af5b5ab"}})这半年年度 kpi 任务有点难搞。。。😥

用 Apifox(apifox.cn)呀,可以完全自动校验数据结构。Apifox = Postman + Swagger + Mock + JMeter,API 文档、API 调试、API Mock、API 自动化测试。

使用 Apifox 调试接口的时候,系统会根据接口文档里的定义,自动校验返回的数据结构是否正确,无需通过肉眼识别,也无需手动写断言脚本检测,非常高效!

看截图:

王二强 回复

这个有在用,目前 swagger 是上游,apifox 算是下游,目前需要对上游数据进行标准校验,不然同步过去也是不规范的文档

王二强 回复

求推荐详情文档

接口设计规范和异常处理规范,这两项都是需要入参,难实现,譬如接口设计规范其中一项,新增/编辑接口, 需在响应中包括 isSuccess、responseCode、responseMsg、data 四个参数,data 中需返回对应新增的数据 id, 以提高接口响应可信度及易测性(若新增涉及多个表,data 中需返回主表对应新增的数据 id)
(如:{"isSuccess":true,"responseCode":0,"responseMsg":"操作成功","data":{"id":"6078f109c224ec791af5b5ab"}})

hmm,如果按照这个示例,一个通用 jsonSchema 应该是可以满足的,只是你要区分接口类型,分出哪些是 新增/编辑 接口。

但我还是没明白,到底目标是啥,价值是啥?推研发类规范,个人理解最有效的应该是直接开发框架内限制用法,从源头上保障难以出问题,而不是搞一堆校验工具吧。比如你上面提到这个响应值包含固定参数的例子,在大一点的公司都会有这种要求,便于客户端使用通用逻辑直接判定成功或失败。而最常见的实践,是直接在网络框架里内置好标准 Response 类,固定有这 4 个参数。代码使用时只能用 Response.success(Object data)(自动设定 isSuccess=true, responseCode=成功对应的 code,responseMsg='',data 为入参)或者 Response.error(int responseCode, String responseMsg)(自动设定 isSuccess=false, responseCode 和 responseMsg 为入参,data 为 null)等少数几个方法来进行返回,不允许直接 return 任意数据。这样既简化了代码,又落实了规范。

陈恒捷 回复

目标就是接口的规范性,价值的话,我目前认为是 kpi 工具而已;从源头上来限制,也要有数据支撑,报告呈现,没办法~😂

好吧,意思就是冲着要拿规范符合度数据,那只能搞校验工具了。

你提到的那个点,如上面所说,用 json schema 是可以校验的。至于其他规范,没有信息没法给建议,自己见招拆招吧。

陈恒捷 回复

好勒,谢谢大佬,年底冲业绩,搞搞搞😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册