接口设计对产品经理是比较高的门槛,如果能跨过这一步,不但是对自己的综合能力大幅度提升,而且能更加熟悉系统的细节,对后期的同类产品设计有极大帮助。
接口设计需要一定的代码能力、抽想思维能力、沟通能力等,对综合要求比较高,因此不可有明显的短板。
在设计时要做到每个细节的把控,以免上线后造成问题返工,而且返工可能不是单方面,可能双方或多方,一定要仔细和完善。
一、基础知识
1、精通业务流程
接口设计一定是在熟悉现有业务的前提下再做扩展对接(少数情况系统建设与接口同步进行),所以一定要对自己系统的流程和逻辑非常熟悉,不然在对接过程中常常卡顿,就显得不专业。当然现在系统越来越复杂,也不可能做到全能,总体要有得放矢。
2、读懂API
在做接口设计时,如果是新手,建议多参考并了解不同开放平台的接口样式,比如百度地图等,这样做的目标是看看行业标准和有全局思维
重点是公司内部的开发文档,比如数据字典表、内部接口文档等,搞清楚后台与前台的对应关系
梳理API是最难的一点,也是最花时间的一点,不能因为复杂、庞大就放弃,解决困难最好的方法就是面对困难,和产品、技术人员一点点啃,完成后收获会很大的
3、要有项目管理意识
接口设计就是一个小型项目,有启动、规化、执行、监督、收尾,每个环节有对应的管理方法,最快的学习方式是掌握PMP后裁剪出适合的方案
二、需求调研
1、业务背景
做接口的目的、意义、必要性、可行性等考虑
2、业务场景与逻辑
使用者是谁、入口、出口、分支、循环等,简单的可用文字描述、复杂的应画流程图
3、产品原型
改造过程中如果涉及对现有页面改造或对前台展示、交互有影响,应辅以原型说明
4、进度计划
双方协商好工作后,根据工作任务安排时间表,初期需求模糊可定一个大概范围,做到渐进明细
可参考 NPDP 中提供方法
三、接口设计
1、接口基础信息(必要)
(1)接口名称:一般公司内都有命名规范,比如英文/拼名、驼峰/下划线、前缀/后缀等
(2)接口地址:调用接口的位置(注意内网的特殊访问处理)
(3)通信协议:调用第三方平台接口需要进行系统间的通信,目前常用的协议是http和https;简单理解https是http的加密版,可以将用户到服务端请求的信息进行加密,避免因明文传输被截获而获知用户信息
(4)请求类型:基于http协议的常用请求方式是post和get
(5)响应机制:同步、异步,简单理解同步接口即实时返回消息给调用方,异步接口就是可以延迟返回消息给调用方;实时性要求高的且只能线性工作的需要采用同步接口,其他可以优先使用异步接口;
(6)接口描述(应用场景),对描口的简单介绍,供开发、产品、测试等团队成员看懂即可
(7)接口示例,一般都是 json 格式,这块不需要产品人员来写,接口文档写完后由开发人员补充即可,例如:
{
“resultCode”:200,
“resultDesc”:”新增成功”,
“demandCode”:”X202110090001″
}
(8)其它,比如安全限流、同时并发数、日使用次数等
以上接口基础信息必填,如果的确没有场景也应说明原因
2、消息头(非必要)
最常用的是调用第三方平台接口通常需要进行接口鉴权(比如登录身份验证),服务端判断用户端是否有调用接口的权限
3、请求参数(必要,核心)
产品经理需要根据业务需求明确接口入参中需要哪些字段信息以及字段支持的类型,一般以表格形成,表格由“名称、是否必填、字段类型、描述”组成
注意参数名称的命名规则,应清晰、简洁、统一
4、返回结果(非必要)
(1)根据业务需求定义返回的核心字段信息,一般有几种:“成功/失败、成功/失码代码、文字描述、返回参数“
(2)成功和失败都要有代码,比如:(成功)200,OK ResponseDTOOfstring、(失败) 401 Unauthorized、403 Forbidden、404 Not Found
(3)如果有返回参数,应参考“请求参数”,考虑“名称、是否必填、字段类型、描述”,并准备示例。比如请求地图的轨迹,那返回可能是 json 的经纬度数组
5、约束条件(非必要)
字段约束条件是为了保证接口的有效性、安全性,这点是产品经理跟业务方沟通达成一致后提供给技术人员,比如:图片文件尺寸限制、文件名限制、全量覆盖还是增量补充(对重复性剔除)等
接口设计要出接口文档,并由内部和外部评审通过方可执行(重要,多轮)
四、接口测试
接口测试虽然是测试的工作,测试内容也覆盖众多,但是作为产品可以简单了解以下内容即可,如,
1、接口可用性
即接口是否可以正常调用,正常返回结果,异常正确处理,正常返回错误码等
2、业务需求覆盖
即接口输入输出是否遵循产品需求文档描述
3、边界规则遵循
即接口是否满足业务规则和字段约束条件
4、性能条件
通常接口上线前需要经过压测达到性能指标才可,包括某并发量下的tps和耗时等
五、总结
这篇文章只是针对产品小白的接口入门,对接口文档设计做一个框架性描述,其中每个知识点都可以拿出来细琢磨。接口设计也分大小,小到一个图片上传,大到与支付宝、银行对接,先从基础的熟悉起来,慢慢成长。
对于产品来说接口工作要投入的精力大概分为4:4:2,即4分沟通协调、4分设计讨论、2分跟进,一定要多沟通,切不可以蒙头闭门设计。
接口中请求参数、返回参数要和团队逐一确认,对不确认的地方不可含糊和自认为做主。
接口一旦设计完成上线,再做修改时要通知对方,做变更处理,不然出了问题,对方不知道还要花时间精力排查问题,避免引起矛盾和扯皮。