产品经理可能需要了解第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格式,如下所示:

{

//返回状态码

code: integer,

//返回信息描述

message: "提现成功",

//返回结果数据

data: object

}

(1) CODE状态码

code返回状态码,通常是在开发按照"#1000~1999 区间表示参数错误、#2000~2999 区间表示用户错误、#3000~3999 区间表示接口异常"等规则。(规则仅供参考) 例子如下所示:

(2) Message信息

Message字段相对理解比较简单,就是发生错误时,如何友好的进行提示。一般设计时和code状态码一一对应,如上图所示。

(3) data信息

返回的重要结果数据之一,下图是完整的接口返回数据。

5. 接口文档规范

项目开发需要前端和后端共同完成的,接口文档通常由后端定义并编写接口文档,然后再前后端联调的时候,根据接口文档进行数据交互。

接口文档的另一个重要作用就是规范,项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发,项目维护中或者项目人员更迭的时候,方便后期人员查看、维护。

接口文档的接口分为五部分:请求方法(POST、GET)、接口地址、请求参数、返回参数、返回结果示例。以银行卡四元素校验为例(https://www.juhe.cn/docs/api/id/213):

6. 如何通过接口判断问题是后端还是前端造成的

PM:"前端,帮我看下这块信息为什么是空白的。"

前端:"好勒,马上看。"

2000 years later

前端:"我代码没问题呀,参数也传了,你问下后端。"

PM:"后端,帮我看下这里数据为啥没有。"

后端:"我接口没问题呀,等等,这数据本来就是空的,快找人新增去呀。"

后端一脸嫌弃。

很多时候,当我们发现问题的时候,第一印象就是找开发人员询问原因,很多人基本不会去先判断这问题是属于前端的还是后端的,导致沟通成本变大。

通过上面的介绍,我们可以通过接口的返回数据中的状态码,来初步判断问题属于哪一方。现在介绍一下这么通过浏览器查看接口数据。

首先打开任意浏览器(建议使用谷歌),鼠标右击后点击“查看”或者直接按“F12键”打开发者工具,然后选择"network"—>“XHR”,就会看到很多接口请求,按需找到请求接口,查看对应返回数据即可。

大多数情况下,可以通过接口状态码和消息提示去判断是后端还是前端的问题。

但是有些问题比较隐蔽,即使状态码返回为成功的码,但问题依旧存在,这种情况很有可能是后台某细节错误。

今天内容到此结束了,点击下方【阅读原文】查看更多技术知识点。

最后,我建立了各大城市的产品交流群,想进群小伙伴加微信:yw5201a1  我拉你进群。

关注微信公众号:产品刘 可领取大礼包一份。

··················END··················

今日报告:百度营销发布2022年百度新能源汽车行业洞察下载报告去公众号:硬核刘大  后台回复“ 新能源汽车”,即可下载完整PDF文件。

申明:报告版权归 百度营销 独家所有,此处仅限分享学习使用,如有侵权,请联系小编做删除处理。

RECOMMEND

推荐阅读

产品经理如何催项目进度?

线下实战2.0

从面试的这些细节就可判断公司的好坏

面试题,你手里有几个offer?

点击“阅读原文”

查看更多干货

你不懂API接口是什么?怎么和程序员做朋友相关推荐

  1. 追书神器的api接口写的微信小程序

    @这是我基于追书神器的api接口写的微信小程序 这是我小程序的二维码

  2. web api接口开发实例_小程序开发如何调用 API 接口,以豆瓣电影为例

    API 调用是开发者在小程序开发过程中经常会遇到的问题,本期我们以为调用豆瓣电影 API 为例具体来看 API 的调用过程以及常见的一些问题. 测试用到的小程序是「电影周周看」,内容来自清华大学软件学 ...

  3. 接口是什么意思_程序员天天用却不懂得冷知识,这两句口诀,让你理解RESTful接口...

    在我们前后端交互过程中,我们经常提到一个英文单词RESTful,那么什么是RESTful接口呢? REST,全称Resource Representational State Transfer,翻译成 ...

  4. 这可能是最全的天气Api接口 (可在小程序中使用)

    国内的地图软件基本是支持查询天气的唯独腾讯地图不支持天气查询,当然其他天气平台提供的接口也是够个人使用的. 1.高德地图(高德地图开发者平台) 支持获取实时天气数据 2.百度地图(百度地图开放平台) ...

  5. 微信小程序服务器api接口的路径,微信小程序-封装请求基准路径、接口API 和使用...

    1.在文件夹utils下新建 request.js文件 2.封装请求代码 // 基准路径 //路径仅为举例 const baseurl ='https://127.0.0.1' //get请求 fun ...

  6. YesApi-超强的API接口开发神器

    YesApi 是一个免费.简单又好用的API低代码开发平台.定位:YesApi = API开发 + API测试 + API文档 + API调用 + API后端,让你用一个账号,就能轻松搞定API接口开 ...

  7. 云服务器aip,云服务器API接口-云服务器的使用

    云服务器的API接口,是定义,程序和协议的集合,它们通过API接口实现计算机软件之间的通信. API的主要功能之一是提供通用功能集.通过使用API??函数开发应用程序,程序员可以避免编写无用的程序来简 ...

  8. Web API接口开发和测试

    4.ASP.NET Web API的开发 上面我们定义了一般的Web API接口,以及实现相应的业务实现,如果我们需要创建Web API层,还需要构建一个Web API项目的. 创建好相应的项目后,可 ...

  9. Midjourney API 接口对接历程

    Midjourney是一个基于Discord环境的画图工具,它提供API接口用于扩展功能.对于程序开发者来说,Midjourney只能在Discord环境下使用,这限制了它的使用范围.本文将介绍使用M ...

最新文章

  1. python中__dict__与dir()区别
  2. 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
  3. 网页禁止右键代码各类代码大全
  4. SharePoint 数据库管理-PowerShell
  5. Predator:比微软Kinect更强的视频追踪算法-来自捷克博士论文
  6. Tornado与Django
  7. 浮动div中的图片垂直居中
  8. java 使用 lamba 表达式处理二维数组
  9. python代码打包成apk反编译_python程序打包和反编译
  10. testbench文件显示波形_如何编写testbench的总结(非常实用的总结)
  11. pgAdmin4数据库备份还原
  12. win10的计算机是哪个版本,Win10七大版本哪个好 Windows10系统各版本功能区别详解...
  13. Linux命令之md5sum的作用以及使用方法(md5是什么?)
  14. ubuntu下使用Passenger配置redmine
  15. 关于Web 验证方法你知道几种
  16. MySql打开局域网及广域网端口
  17. 联合证券|滴滴出行即日起恢复!A股嗨了!券商扛起领涨大旗
  18. 专业的人做专业的事 VxRail助中通业务创新驶上“快车道”
  19. PyQt5_pyqtgraph股票SAR指标
  20. Java数据结构-Set

热门文章

  1. java注释的理解,java注解原理——记录一下自己的理解
  2. cas登录成功后不跳转成功页面_SpringSecurity用户登录成功后页面跳转原理剖析
  3. wsl 重启_漫谈在Windows Server 2019中安装使用WSL
  4. linux找出重复数字,C语言笔试经典-查找多位数重复数字以及次数
  5. linq结果转换object_你知道Object.entries(),但你还知道有Object.fromEntries()吗?
  6. UserWarning: Matplotlib is currently using agg in Object Detection API
  7. php 目录555 权限_CMS网站安全权限划分设置教程
  8. 鼠标移动或者鼠标点击div消失不见排查
  9. 图文详解linux/windows mysql忘记root密码解决方案
  10. js 根据固定位置获取经纬度--腾讯地图