你有没有遇到过这种情况:

1、发现线上有bug时,不知道是前端的问题,还是后端的问题?

2、需要通过一份《接口文档》设计产品功能,不知道如何思考?

3、好奇前端和后端是如何通信的?

下面将一一讲解。

本文目录:

1、什么是接口?

2、接口的组成

3、如何判断bug是哪端的问题

4、如何通过接口思考产品功能

一、什么是接口?

接口是后端设计的一套供给第三方使用的方法。(第三方指前端/后端)

接口通过网络协议来调用,我们最常用的协议是HTTP协议。

在定义一个接口时,会写好接口路径和接口方法名的映射,然后前端通过接口路径来调用方法。

举个例子:一个获取商品列表的接口,接口路径是:/api/getMerchantList,接口方法名是:getMerchantList。前端通过请求/api/getMerchantList来调用getMerchantList方法,接着后端会做相关逻辑处理,比如查询数据库,最后返回商品数据。

小结:前端通过请求接口路径来和后端通信。但是需要注意的是像这种通过一个http请求接口来通信的方式是单向的,比如只能前端主动发起请求和后端通信,后端不能主动发起请求和前端通信。如果后端想主动和前端通信,可以通过双向通信协议websocket来通信,现在很多聊天工具,都是使用该协议来双向通信的。

二、接口的组成

一份规范的接口文档,一般是由以下几部分组成:

接口路径: /api/getMerchantList
接口描述:获取商品列表
请求类型:get
请求参数:
{
page:1, // 第几页
pageSize:20, // 一页有多少条数据
name:'薯片',// 商品名字,为空表示查全部
}
返回结构:
{  code:0,// 返回码  data:{    list:[     {name:'乐事薯片', // 商品名称     price:13 // 商品价格 }   ]
},
message:'success' //错误信息
}

小结:请求类型指的是http协议的请求方法,最常用的是post/get,一般查询数据类的接口使用get类型,操作数据增删改类的接口使用post类型。

请求参数是后台规定好前端需要传的参数结构,比如前端想要第二页的数据,那传一个 page:2 给后端就可以了。

返回结构是后台规定好返回给前端的数据结构,一般的返回结构包括三个部分:返回码、错误信息、正确数据。通过返回码可以让前端知道后端逻辑是否出现错误,比如返回码为0表示成功,返回码为500表示服务器错误。如果返回码不为0 ,前端就可以直接提示错误信息告知用户接口出错了。

三、如何判断bug是哪端的问题

通过上面的讲解,大家都知道了后端接口出错可以通过返回码来判断,所以一般情况下,判断bug是哪端的问题,直接看返回码就可以了。建议使用chrome的开发者工具查看,鼠标右键选择检查/按下键盘F12会弹出一个开发者工具,然后选择network,会看到很多接口请求,找到请求接口,查看对应的错误码就ok啦。如下图:

小结:一般情况下可以通过接口错误码去查看是哪端的问题,如果错误码不为0应该是后端的问题,否则是前端的bug。但是有些bug通过接口返回码也是看不出来的,即使返回码为成功,后台也有可能有隐藏的逻辑错误。(备注:返回码的定义可能因功能和开发而异,比如返回码为2,可能是别的业务含义,不过一般返回码为0都表示成功)

四、如何通过接口思考产品功能

如果你需要通过一份接口文档来规划产品功能:

1、首先要看文档提供了哪些接口功能,你想要但是不存的接口功能就需要去和开发沟通协商了。

2、其次是看每个接口里面的入参,是否都有数据源存在,比如一个要给公众号特定的人群发模版消息的接口,是需要openid作为参数的,那openid是否已经存在我们的库中,或者有没有其他方式去获取。

3、最后看接口的返回参数,要清楚接口返回了哪些字段,可能你的需求里面需要某个字段,但是接口里面没有返回,这时可以去和开发沟通是否支持某个字段返回。

更多技术好文欢迎关注我的公众号:产品的技术小课

支付接口调用成功后如何让前端知道_开发口中的「接口」到底是什么相关推荐

  1. jQuery:ajax调用成功后返回数据

    本文翻译自:jQuery: Return data after ajax call success [duplicate] This question already has answers here ...

  2. 接口调用成功,功能实现但是返回404报错

            正常情况下我们都知道http请求,404是url不存在,200是接口调用成功,500是接口调用时候发生异常.  但是昨晚写接口时候发现了一个很奇怪的问题,写了一个excel批量导入的接 ...

  3. java微信支付 [统一下单接口] 与 [订单查询接口] 调用成功完整代码与结果

    公司最近要搞微信支付, 之前也没有做过, 但是搞过阿里云, 想来也不是很难. 在网上找了很多贴子, 在eclipse里做了5个测试工程, 没有测试成功, 后来下了微信SDK, 也做了个测试样例, 期间 ...

  4. ajax接口请求成功后走的error函数,提示信息中textStatus 报错为 parsererror问题

    问题原因: 类型的问题,也就是说可能是返回类型出问题了 XMLHTTPRequest对象是基于XML的HTTP请求.XMLHTTPRequest是一个浏览器接口,使得Javascript可以进行HTT ...

  5. uniapph5授权成功后返回上一页_记一次授权系统的安全测试

    山东泽鹿安全 威胁管理   漏洞运营   应急响应 原创声明:泽鹿安全原创文章,欢迎转载,请注明出处! ID : 秋水 拿到授权系统IP,首先测一下目录找后台,Nmap扫一下端口,看看后台是不是在其他 ...

  6. gitlab合并分支后需要提交吗_阿里前端,如何基于 GitLab 进行「自动化」构建及发布...

    在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab.本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布. 在从 SVN 迁移到 GitLab 和接入 Gi ...

  7. uniapph5授权成功后返回上一页_被成功验证过的的7条选品思路(收藏)

    所谓选品占七分,运营占三分.产品选的好,酒香不怕巷子深. 以下7点新手卖家选品必须考虑的思路: 01 商品价格介于 10-50美金 商品售价非常重要,这个是买家在下订单前必定会看到并且考量的地方.10 ...

  8. ble 连接成功后找不到服务_闷声发大财的BLE芯片龙头

    来源:内容由半导体行业观察(ID:icbank)原创,作者:邱丽婷,谢谢. 你有多久没使用过蓝牙功能了?随着Wi-Fi和快传软件的普及,蓝牙(Bluethooth)这一每部手机都配备的数据传输工具,正 ...

  9. 两年不工作、月花200块,90后躺平学大师已有了一批「信徒」

    来源|后浪研究所 ID|youth36kr 作者|杨小彤.薇薇子 两年多没工作了,也没觉得哪里不对:每天只吃两顿饭,解决食物问题就是解决一切:每月花销控制在200块以内,没钱了,一年也就工作个一两个月 ...

最新文章

  1. Asp.net MVC 3实例学习之ExtShop(五)——产品详细页
  2. Java基础笔记(入门,语法基础,流程控制,数组)
  3. linux gcc 链接静态库的几种方式
  4. PMP知识点(七、资源管理)
  5. vim配置文件~/.vimrc
  6. 用最小二乘法拟合任意次函数曲线(C#)
  7. jsp mysql简单登录_简单的登录页面,实现增删改查运用jsp/servlet和mysql数据库免费分享...
  8. 深度探索C++对象模型读书笔记(2)
  9. python3 socket sendall_全网最详细python中socket套接字send与sendall的区别
  10. 博饼游戏c语言,2015中秋博饼游戏规则
  11. android 快速开发(二)辅助类的使用,kotlin枚举类反射
  12. win7配置TomCat环境
  13. 2019年全球卫星遥感行业现状、融资及卫星遥感行业发展趋势分析:即时化、网络化、个性化、多样化(转载)
  14. 计算机rom分类,一文看懂ROM的结构、特点及其分类-控制器/处理器-与非网
  15. 快递查询工具,一键查物流,派件时效怎么分析
  16. 从0 到1开发一款App(二):产品
  17. 一张图读懂极大极小搜索和α-β剪枝
  18. PX4模块设计之二十六:BatteryStatus模块
  19. python中description_python中cursor.description什么意思
  20. MATLAB代码编写中自定义变量的问题

热门文章

  1. 【问答集锦】减少专家依赖,自动化机器学习如何实现AI普惠?
  2. 【选手分享】菜鸡到大佬的蜕变技巧
  3. 年薪201万!华中科大AI博士生入选华为天才少年计划!
  4. 卷积神经网络CNN结构
  5. Leetcode每日一题:904.fruit-into-baskets(水果成篮)
  6. Leetcode每日一题:48.rotate-image(旋转图像)
  7. sitemap.xml生成方法(asp和php)(转)
  8. c语言单片机串口通讯,单片机C语言之串口通信协议
  9. python图像直方图、获取每一个柱的个数_python数字图像处理实现直方图与均衡化...
  10. 向内存中连续存入数据_实例35_在Excel中按条件筛选数据并存入新的表