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

说到开发平台就一定离不开接口,作为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”,就会看到很多接口请求,按需找到请求接口,查看对应返回数据即可。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/152712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试/测试开发丨人工智能产品质量保障:挑战与创新

点此领取人工智能课程 人工智能产品的质量保障与测试是当前软件开发领域最具挑战性的任务之一。随着人工智能技术的迅猛发展,产品日益复杂,传统测试方法逐渐显得力不从心。在这个背景下,我们需要创新性地思考并采用新的策略,以确…

使用 Java 枚举和自定义数据类型

介绍 在 Java 编程领域,理解并有效利用枚举和自定义数据类型对于编写健壮、可维护且高效的代码至关重要。这篇文章旨在深入研究 Java 枚举和自定义数据类型的概念,提供见解和示例,以增强您的编码技能和知识。 理解 Java 中的枚举 枚举是枚…

十秒钟学会Mac系统和Linux之间的文件传输

前言 在我们的mac系统上,大家应该要先学会用我们的终端远程连接Linux的虚拟机或者云服务器,教程在这篇博客:http://t.csdnimg.cn/KQzgc 大家如果想安装iterm2和on-my-zsh(非常推荐,很好用)的话,…

CentOS中安装常用环境

一、CentOS安装 redis ①:更新yum sudo yum update②:安装 EPEL 存储库 Redis 通常位于 EPEL 存储库中。运行以下命令安装 EPEL 存储库 sudo yum install epel-release③:安装 Redis sudo yum install redis④:启动 Redis 服…

java 批量更改

直接上代码 void batchUpdateSpecificationId(Param("infos") List<GoodsInfo> infos);<update id"batchUpdateSpecificationId">update goods_infoset specification_id <foreach collection"infos" item"info" open&…

打开PDF文件之后不能编辑,有哪些原因?

打开PDF文件之后发现没有办法编辑PDF文件&#xff0c;都有哪些原因呢&#xff1f; 首先我们可以考虑一下&#xff0c;PDF文件中的内容是否是图片&#xff0c;如果确认是图片文件&#xff0c;那么我们想要编辑&#xff0c;就可以先使用PDF编辑器中的OCR扫描功能&#xff0c;将图…

利用jquery对HTML中的名字进行替代

想法&#xff1a;将网页中经常要修改的名字放在一个以jquery编写的js文件中&#xff0c;如果需要修改名字&#xff0c;直接修改js文件中的名字即可。 新建name_07.html文件&#xff0c;写入下面的代码&#xff1a; <!DOCTYPE html> <html> <head><meta …

如何选择一款车规级电源开关/驱动器芯片?NCV8405ASTT3G自保护低压侧驱动器

关于车规级芯片&#xff08;Automotive Grade Chip&#xff09;&#xff0c;车规级芯片是专门用于汽车行业的芯片&#xff0c;具有高可靠性、高稳定性和低功耗等特点&#xff0c;以满足汽车电子系统的严格要求。这些芯片通常用于车载电子控制单元&#xff08;ECU&#xff09;和…

echart 雷达图

详细信息 // 图表 var myChart echarts.init(document.getElementById(echart)); var option {radar: {radius: 60%,axisLabel: {//坐标轴刻度标签的相关设置。fontSize: 12//文字的字体大小},splitLine: {// 是否显示网格线show: true,lineStyle: {//分隔线颜色&#xff0c;…

算法通关村第九关-白银挑战二分查找与高频搜索树

大家好我是苏麟,今天看看二分查找相关的题目 . 大纲 二分查找拓展问题山脉数组的峰顶索引寻找旋转排序数组中的最小值 中序与搜索树二叉搜索树中的搜索验证二叉搜索树 二分查找拓展问题 山脉数组的峰顶索引 描述 : 符合下列属性的数组 arr 称为 山脉数组 &#xff1a; arr…

JumpServer2023漏洞复现合集

本文主要复现JumpServer2023年出现的大批量漏洞&#xff0c;既是分享也是为了记录自己的成长&#xff0c;近期会持续更新。 1. JumpServer MongoDB远程代码执行漏洞&#xff08;CVE-2023-43651&#xff09; 1.1 漏洞级别 高危 1.2 漏洞描述 经过身份验证的用户可以利用Mon…

检验Pdfsharp.dll 支持的语言及对应的字体

文章目录 检验所支持语言的字体使用字体绘制文本并显示 PdfSharp 语言和字体的支持有限&#xff0c;有时候再本地电脑上能正常显示文本&#xff0c;但在其它电脑上就显示乱码或一个正方体&#xff0c;或&#xff1f;&#xff1f;。不同操作系统可能自带的字体本身就不一样&…

LeetCode2-两数相加

大佬解法 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode pre new ListNode(0);ListNo…

ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION packages field missing or empty

vue执行 pnpm install命令时&#xff0c;报 ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION  packages field missing or empty错&#xff0c;在网上查询了很久&#xff0c;也没有传出来结果&#xff0c;最后发现是pnpm的版本不对引起的。 我先执行的是npm install -g pnpm&…

口袋参谋:如何找竞争小,优势大的蓝海词?

​ 作为淘宝天猫的中小卖家&#xff0c;99.99%的人都知道流量对于店铺的重要性&#xff0c;如果没有流量的话&#xff0c;店铺是肯定没有销量的。 提高流量的方式有很多种&#xff0c;比如优化宝贝图片、标题、关键词等&#xff0c;由于在淘宝天猫上同一宝贝的竞争力太大了…

成果分享丨学生学徒“行业”+大数据模型分享

学生学徒 阶段成果分享 为进一步提升学生学徒制学员的技术水平&#xff0c;增强学员的企业项目应用能力&#xff0c;助力学员全面发展。自学徒制开展以来&#xff0c;泰迪指导学员完成多项企业应用项目&#xff0c;开展多次项目经验分享交流&#xff0c;让学员在实践中不断学…

蘑菇街获得mogujie商品详情 API 返回值说明

速卖通API接口是速卖通平台提供的一种数据交换接口&#xff0c;可以帮助卖家快速获取平台上的商品信息、订单信息、用户信息等数据&#xff0c;以便在自己的应用程序中进行展示、管理或分析。 速卖通API接口可以通过以下步骤进行使用&#xff1a; 注册速卖通账号并获取API密钥…

如何将本地Portainer管理界面结合cpolar内网穿透工具实现远程浏览器访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具&#xff0c;可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

软件开发选择个人好?还是公司好?一篇文章带你了解

随着科技的发展&#xff0c;软件开发已成为一个相对复杂的行业&#xff0c;需要专业的技能和经验来保证项目的成功。然而&#xff0c;一些企业或个人可能会选择个人开发者进行软件开发&#xff0c;虽然这种选择可能会带来一些弊端。本文将探讨选择个人开发者进行软件开发的弊端…