产品经理可能需要了解第2个技术知识点:什么是API接口?接口有那几部分组成?怎么通过接口定位是前端bug还是后端bug? 1. 接口是什么 2. 接口地址组成部分 3. 接口请求方式 4. 接口返回内容 5. 接口文档规范 6. 如何通过接口判断问题是后端还是前端造成的 说到开发平台就一定离不开接口,作为PM,我们不需要对接口了解的特别细。只需要知道接口是什么,有什么用,有哪些要素就行。 1. 接口是什么 (1) 硬件接口 生活中我们经常会接触接口,最常见的就是HDMI接口和USB接口,而且我们知道接入某个接口就能实现某种功能。 例如笔记本电脑可以通过HDMI接口连接电视,将画面同步显示到电视上;Switch等游戏设备也可以通过HDMI接口连接电视,实现在电视上玩游戏。 大多数人并不需要知道HDMI接口是怎么实现的,只需要接入之后能干什么就行。(HDMI是一种高清视频接口,可用来传输图像信号和音频信号。) (2) 程序接口api(application program interface) 其实从实际意义上讲程序的接口也和硬件一样,将内部实现的功能封装起来,像一个盒子一样只留出一个口子,人们接入这个口子就能使用这个功能。 调用的人可以很方便使用这些功能,并且可以不需要知道这些功能的具体实现过程,接口API就是按照作者规定的流程去调用这些功能。 实际开发中,当前端和后端有数据交互时,前端人员都会直接向后端询问接口写好了没,而不会问他具体的怎么实现的。 【举个例子:点餐吃饭】 我们到商场店里吃饭,现在基本上都是扫码点餐;首先扫描二维码进入页面,输入就餐人数,然后劈里啪啦一顿点餐并提交订单。点完后,服务员会跟你核对菜单,然后同步到后厨,最后我们就坐等上菜。 例子中的扫码点餐过程就可以看成是API接口的工作过程,一个点餐的API接口,通过选中菜品(输入参数),最后服务员上的一道道菜(输出数据),这过程就是点餐API接口的作用。 来吃饭的顾客是接口的调用者,接口的提供者就是商家。大多数接口一定要有输入和输出,但是严格意义上不是这样的,没有输入也有输出。 接口是数据传递是一种表现。 【再举个超简单的例子:点灯开发】 接口的请求可以理解为接口就是一个电灯的开关,它在接口里面给你提供了一个参数,参数的值一个是 “开”、另一个是“关”,分别对应“灯亮”、“灯灭”。 通过这两个例子,想必大家对接口的概念有所理解了吧,接下来我们来看看接口有那几部分构成的。 2. 接口地址组成部分 接口地址由请求协议、IP地址、端口、接口名称、参数组成。 (1) 请求协议 http:普通的http请求; https:加密的http请求,传输数据更加安全; ftp:文件传输协议,主要用来传输文件。 (2) 请求IP 就是指提供接口的系统所部署的服务器地址,通常用映射IP的域名来代替; (3) 端口 如果不填端口,默认是80,否则需要填写端口号; (4) 接口名称 好的接口命名能让开发者便于阅读和理解,如 “news/add” 和 “news/update”,一看就知道新闻添加和新闻信息编辑的接口。 (5) 接口参数/参数值 参数在接口路径后,用“?”来表示路径地址结束,后面跟着的都是参数,用“&”来区分参数个数(GET请求传参方式)。 3. 接口请求方式 一般采用的是HTTP协议的POST和GET请求;GET请求方式参数通常拼接在接口地址后面; 而POST请求则不会拼接在后面,是保证了数据的安全性; 4. 接口返回内容 将参数传过去之后,后端返回给前端一般用JSON格式,如下所示: (1) CODE状态码 code返回状态码,通常是在开发按照'#1000~1999 区间表示参数错误、#2000~2999 区间表示用户错误、#3000~3999 区间表示接口异常'等规则。(规则仅供参考) 例子如下所示: (2) Message信息 Message字段相对理解比较简单,就是发生错误时,如何友好的进行提示。一般设计时和code状态码一一对应,如上图所示。 (3) data信息 返回的重要结果数据之一,下图是完整的接口返回数据。 5. 接口文档规范 项目开发需要前端和后端共同完成的,接口文档通常由后端定义并编写接口文档,然后再前后端联调的时候,根据接口文档进行数据交互。 接口文档的另一个重要作用就是规范,项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发,项目维护中或者项目人员更迭的时候,方便后期人员查看、维护。 接口文档的接口分为五部分:请求方法(POST、GET)、接口地址、请求参数、返回参数、返回结果示例。以银行卡四元素校验为例(https://www./docs/api/id/213): 6. 如何通过接口判断问题是后端还是前端造成的 PM:'前端,帮我看下这块信息为什么是空白的。' 前端:'好勒,马上看。' 2000 years later 前端:'我代码没问题呀,参数也传了,你问下后端。' PM:'后端,帮我看下这里数据为啥没有。' 后端:'我接口没问题呀,等等,这数据本来就是空的,快找人新增去呀。' 后端一脸嫌弃。 很多时候,当我们发现问题的时候,第一印象就是找开发人员询问原因,很多人基本不会去先判断这问题是属于前端的还是后端的,导致沟通成本变大。 通过上面的介绍,我们可以通过接口的返回数据中的状态码,来初步判断问题属于哪一方。现在介绍一下这么通过浏览器查看接口数据。 首先打开任意浏览器(建议使用谷歌),鼠标右击后点击“查看”或者直接按“F12键”打开发者工具,然后选择'network'—>“XHR”,就会看到很多接口请求,按需找到请求接口,查看对应返回数据即可。 大多数情况下,可以通过接口状态码和消息提示去判断是后端还是前端的问题。 但是有些问题比较隐蔽,即使状态码返回为成功的码,但问题依旧存在,这种情况很有可能是后台某细节错误。 |
|