产品经理必备知识——API接口 产品经理接口设计
yuyutoo 2024-10-25 19:20 7 浏览 0 评论
进入互联网时代之后,API接口的出现为不同应用程序搭建起了桥梁,那么,你是否真的了解API呢?这篇文章里,作者对API接口的分类、原理、API接口的请求方式等问题进行了总结,一起来看。
在古代,我们的传输信息的方式有很多,比如写信、飞鸽传书,以及在战争中使用的烽烟,才有了著名的烽火戏诸侯,但这些方式传输信息的效率终究还是无法满足高速发展的社会需要。如今万物互联的时代,我通过一部手机就可以实现衣食住行的方方面面,比如:在家购物、远程控制家电、自动驾驶等等,背后都离不开我们今天要聊的API接口。
一、什么是API及其重要性
API接口是应用程序编程接口(Application Programming Interface)的缩写,是一种预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。简单来说,API就是让不同的软件之间可以互相通信、协作的工具。
在当今数字化时代,互联网已经成为人们生活和工作中不可或缺的一部分。而API接口则是连接不同应用程序的重要桥梁,它使得不同的应用程序之间可以进行数据交换、信息共享,从而提高工作效率、降低成本,推动数字化转型进程。
比如我们现在看到很多app打开都会弹出请求定位服务的弹窗,本质就是 GPS服务商提供了精准位置的API接口,app通过调用API接口获取设备的经纬度参数。
如果你选择允许,app就会根据你的当前位置为你提供更加个性化的一些服务,当然也有一些app拿到你的位置信息做出损害用户利益的行为,所以还是需要谨慎授权。
二、API接口的分类和原理
API接口按类型分类 API接口可以根据其使用方式的不同进行分类,常见的有:
远程过程调用(RPC):通过发送请求和响应消息的方式实现程序间的通信。RPC的设计类似于普通的过程调用,就如同在本地调用API一样。RPC API通常使用二进制压缩格式传递消息,目的就是提高传输效率,但这通常需要在客户端安装指定的库(也就是所谓的存根),这些库与单个API一起工作。
远程函数调用(RFC):类似于RPC,但是更加灵活,允许客户端直接调用服务器上的函数。
消息传递接口(MPI):一种基于消息传递的通信方式,常用于分布式系统中。
通用对象访问协议(CORBA):一种面向对象的通信协议,允许不同操作系统之间的对象之间的相互交互。
API接口的原理介绍 API接口的原理其实就是利用网络协议来实现不同应用程序之间的通信。当一个应用程序需要调用另一个应用程序中的某个功能时,它会向目标应用程序发送一条请求消息,目标应用程序接收到请求后会进行处理并返回相应的响应消息给发起请求的应用程序。这个过程中涉及到了网络协议、数据传输格式、数据加密等多个方面的知识。
三、API接口的请求方式
1. GET方法
GET方法是最常见的一种API请求方式,它的作用是向指定资源发出请求并返回实体主体内容。比如:当我们在浏览器中输入一个URL地址时,浏览器就会发送一个GET请求到服务器上获取相应的网页内容,可以理解为只读。
- 使用:用”?”连接,多个参数间用”&”连接(URL末尾;
- 应用场景:eg:请求数据:查询,菜单列表,搜索等数据的请求;
- 特点:数据量较小,返回速度快,接口暴露在外,存在风险。
2. POST方法
POST方法是向指定资源提交数据进行处理请求,它通常用于提交表单、上传文件等操作。比如:当我们在网站上填写表单并点击提交按钮时,浏览器就会将表单数据以POST请求的方式发送到服务器上进行处理,可以理解为创建。
- 使用:特定地方(提交、上传的地方)提交数据来进行请求;
- 应用场景:eg:注册、上传、等功能;
- 特点:请求数据量大,安全性要求高。
3. PUT方法
PUT方法是向指定资源位置上上传其最新内容的操作,它通常用于更新已有的资源信息。比如:当我们在网站上编辑一篇文章并保存时,服务器就会将最新的文章内容以PUT请求的方式覆盖原有的文章信息,可以理解为修改。
4. DELETE方法
DELETE方法是请求服务器删除request-URL所标示的资源的操作,它通常用于删除指定的页面或者资源。比如:当我们在浏览器中打开一个错误的页面时,我们可以点击浏览器上的“刷新”按钮或者按下“Delete”键来请求服务器删除该页面。
5. OPTIONS方法
OPTIONS方法是HTTP协议中的一个预检请求方法,它用于获取目标资源的通信选项等信息。比如:当我们在浏览器中打开一个跨域资源共享(CORS)的网页时,浏览器会先发送一个OPTIONS请求到服务器上获取该资源的允许跨域访问的信息。
6. HEAD方法
HEAD方法是HTTP协议中的一个非响应性请求方法,它用于获取目标资源的头部信息,不会返回实际的数据内容。比如:当我们在浏览器中查看一个网页的源代码时,我们可以使用浏览器上的“查看页面源代码”功能来发送一个HEAD请求到服务器上获取该网页的头部信息。
四、接口响应机制
- 同步交互:发送一个请求,需要等待返回,然后才能够发送下一个请求,需要等待,即用户行为请求成功后(如登录、支付),需要返回验证结果后,才能登录或支付成功。
- 异步交互:发送一个请求,不需要等待返回,随时可以再发送下一个请求,不需要等待,即用户行为请求成功后,系统收到请求后异步同步结果,调用方无须等待每个请求的调用结果。
五、API接口的安全机制
1.签名验证机制的实现方式和作用:API接口通常会对请求进行签名验证以确保数据的完整性和安全性。签名验证机制可以通过多种方式实现,其中最常见的是采用HMAC算法和数字证书技术。
HMAC算法是一种基于哈希函数的消息认证码算法,它可以生成一个固定长度的随机字符串作为签名值;数字证书则是一种由权威机构颁发的电子凭证,可以用来证明公钥的合法性和身份的真实性。通过签名验证机制可以有效地防止恶意攻击和数据篡改等问题的发生。
2.OAuth授权机制的实现方式和作用:OAuth授权机制是一种常用的API接口安全机制,它通过将用户的身份认证和数据访问权限分离开来来保证系统的安全性。
具体来说,OAuth授权机制包括以下几个步骤:用户向第三方应用发起授权请求;第三方应用将用户的授权信息发送给目标API接口;目标API接口根据授权信息判断用户是否有权访问该资源;如果用户有权访问该资源,则返回相应的数据内容;否则返回错误信息或者拒绝访问。通过OAuth授权机制可以有效地保护用户的隐私和数据安全。
3.SSL/TLS安全协议在API接口中的应用:SSL/TLS安全协议是一种广泛使用的网络安全协议,它可以为数据传输提供加密和认证服务。在API接口中,SSL/TLS安全协议可以用来保护数据的机密性和完整性,防止数据被窃取或者篡改。
具体来说,SSL/TLS安全协议可以通过握手协议来建立安全通道;通过对数据进行加密和解密来保证数据的机密性;通过对证书进行验证来保证数据的完整性和合法性。通过SSL/TLS安全协议的应用可以有效地提高API接口的安全性和可靠性。
以上3种API的安全机制都是基于在不同的业务场景中使用,通俗来讲,就是谁可以访问这个接口,通过什么样的方式访问,访问的权限范围有哪些。差异在于不同安全机制的成本和身份验证的方式不同(对应的要求不同)。
举个简单例子,你想进一个相对不那么封闭的场所,只需要和里面认识的人打个招呼,就会放你进去。但是像坐飞机这样对身份识别要求比较高的“场所”,需要你有相关的证件(身份公证)才能进入,以及你登机之后由于你的身份是乘客你只能在客舱,是不能进入驾驶舱操纵飞机。
六、API接口速率限制
我们要考虑的最后一种安全机制是用来防御恶意或偶然的DoS攻击,确保可用性的机制。DoS攻击的原理是发送大量合法请求,导致API需要的资源被耗尽。这些资源包括CPU时间、内存和磁盘使用率、电源等。
通过向API中注入大量的虚假请求,这些资源将全部被用于服务这些请求,而无暇顾及其他。除了发送大量的请求外,攻击者还可能发送消耗大量内存的超大请求,或者发送慢速请求,这些都会导致资源长时间被占用,并且恶意用户不需要花费太多精力。
抵御这些攻击的关键是要能识别出一个客户端(或一组客户端)使用的资源(时间、内存、连接数等)超过了它的合理份额。通过限制用户可使用的资源,就可以降低这种攻击风险。一旦用户通过身份验证,应用程序就可以强制为用户指定配额(quota)资源,限制他们可以执行的操作。
比如,你可以限制每个用户每小时只能发送一定数量的API请求,防止他们发送大量的请求来冲击系统。采用计费的方式来限制用户请求,既有商业目的,也有安全方面的考量。
七、API接口文档
前面讲到的关于接口的请求方式、类型、原理、安全机制等,产品经理能够简单了解一些就可以满足日常工作中的需要。接口文档是产品经理日常工作中经常会使用到的,特别是做开放平台或B端的产品经理,需要经常的看和写接口文档。
那如何看接口文档呢?首先,看接口文档的场景一般是自身业务模块需要获取外部的数据,但又不想自己重新开发,寻找外部已经实现的有开放能力的供应商(包含企业内部的)。比如淘宝开放平台、微信开放平台等等,需要获取淘宝订单或者使用微信支付,不需要自己开发对应的工具,可以调用对方的开放接口。
接口文档一般包含三个部分,即接口说明(签名获取方法、访问频率和并发、错误码)、接口参数(包括请求参数和返回参数)以及接口代码示例。
其次,是要明确自身的业务需求,需要通过外部接口获取什么能力,具体到需要什么参数。去供应商的开放平台找到对应的接口,查看接口返回参数是否有你想要的信息,注意一些用户个人信息参数都是加密的,还需要通过解密接口获取。
最后,如果在接口满足你诉求的之后,再去看开放平台需要获取这些接口的要求是什么,以及接口开放的权限范围,看下自己是否满足这些要求。如果不去看的话,可能会白白浪费很多调研时间。
写接口文档,接口文档的查看对象一般是研发和测试人员,所以大致内容就包括接口的使用场景、接口请求方式、错误码、接口说明等几个部分。其中接口说明分为请求参数和返回参数,请求参数包含:英文字段、字段类型、示例值、是否必填、字段说明。返回参数包含:英文字段、字段类型、示例值、字段说明。如下图:
八、总结与展望
API接口是数字化时代的重要基础设施之一,它为不同应用程序之间的集成和交互提供了强大的支持和便利。未来随着人工智能、物联网等新技术的发展和应用,API接口的作用将会越来越重要。同时,为了更好地满足用户需求和应对安全威胁,API接口的设计和使用也将面临更多的挑战和机遇。因此,我们需要不断地学习和探索新的技术和方法,以推动API接口的发展和应用。
本文由 @Glee 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
相关推荐
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
-
Mysql和Oracle实现序列自增/*ORACLE设置自增序列oracle本身不支持如mysql的AUTO_INCREMENT自增方式,我们可以用序列加触发器的形式实现,假如有一个表T_WORKM...
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
-
概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...
- MySQL CREATE TABLE 简单设计模板交流
-
推荐用MySQL8.0(2018/4/19发布,开发者说同比5.7快2倍)或同类型以上版本....
- mysql学习9:创建数据库(mysql5.5创建数据库)
-
前言:我也是在学习过程中,不对的地方请谅解showdatabases;#查看数据库表createdatabasename...
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
-
执行"CREATETABLE新表ASSELECT*FROM原表;"后,新表与原表的字段一致,但主键、索引不会复制到新表,会把原表的表记录复制到新表。...
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
-
在街上看到的PandaDunk的超载可能让一些球鞋迷们望而却步,但Dunk的浪潮仍然强劲,看不到尽头。我们看到的很多版本都是为女性和儿童制作的,这种新配色为后者引入了一种令人耳目一新的新选择,而...
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
-
多功能雷达AN/SPY-1的特性和技术能力,该雷达已经在美国海军服役了30多年,其修改-AN/SPY-1A、AN/SPY-1B(V)、AN/SPY-1D、AN/SPY-1D(V),以及雷神...
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
-
全面分析汽车音响使用或安装技术常识一:主机是大多数人最熟习的音响器材,有关主机的各种性能及规格,也是耳熟能详的事,以下是一些在使用或安装时,比较需要注意的事项:LOUDNESS:几年前的主机,此按...
- 【推荐】ProAc Response系列扬声器逐个看
-
有考牌(公认好声音)扬声器之称ProAcTablette小音箱,相信不少音响发烧友都曾经,或者现在依然持有,正当大家逐渐掌握Tablette的摆位设定与器材配搭之后,下一步就会考虑升级至表现更全...
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
-
作者:初吻给了烟sco混迹张大妈时日不短了,手没少剁。家里有了汪星人,吸尘器使用频率相当高,偶尔零星打扫用卧式的实在麻烦(汪星人:你这分明是找借口,我掉毛是满屋子都有,铲屎君都是用卧式满屋子吸的,你...
- 专题|一个品牌一件产品(英国篇)之Quested(罗杰之声)
-
Quested(罗杰之声)代表产品:Q212FS品牌介绍Quested(罗杰之声)是录音监听领域的传奇品牌,由英国录音师RogerQuested于1985年创立。在成立Quested之前,Roger...
- 常用半导体中英对照表(建议收藏)(半导体英文术语)
-
作为一个源自国外的技术,半导体产业涉及许多英文术语。加之从业者很多都有海外经历或习惯于用英文表达相关技术和工艺节点,这就导致许多英文术语翻译成中文后,仍有不少人照应不上或不知如何翻译。为此,我们整理了...
- Fyne Audio F502SP 2.5音路低音反射式落地音箱评测
-
FyneAudio的F500系列,有新成员了!不过,新成员不是新的款式,却是根据原有款式提出特别版。特别版产品在原有型号后标注了SP字样,意思是SpecialProduction。Fyne一共推出...
- 有哪些免费的内存数据库(In-Memory Database)
-
以下是一些常见的免费的内存数据库:1.Redis:Redis是一个开源的内存数据库,它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。Redis提供了快速的读写操作,并且支持持久化数据到磁...
- RazorSQL Mac版(SQL数据库查询工具)
-
RazorSQLMac特别版是一款看似简单实则功能非常出色的SQL数据库查询、编辑、浏览和管理工具。RazorSQLformac特别版可以帮你管理多个数据库,支持主流的30多种数据库,包括Ca...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
- MySQL CREATE TABLE 简单设计模板交流
- mysql学习9:创建数据库(mysql5.5创建数据库)
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
- 【推荐】ProAc Response系列扬声器逐个看
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)