什么是API,API的概念

1、API的概念 

        API 全称(Aplication Programming Interface),一般来说就是 软件组件之间信息交互的桥梁。

2、举个例子

假如你有一个银行,客户想要来银行存钱需要进行以下步骤 ->

        ·拿着钱去银行

        ·打开仓库的门把钱放进去

        ·把这笔业务记到账本上

        ·离开银行

显然这存在以下问题 ->

        1.过程繁琐复杂

        2.信息交互可能存在不诚信行为

这时遇到了麻烦,怎么办呢?

        至此我们引出今天的主角 APIAplication Programming Interface),他能轻松帮你实现和其他软件组件(如操作系统、服务器等)的信息交互;

这时 API 相当于一个柜台的雇员 - 小娜,当用户需要存钱时只需要 ->

        ·拿钱去银行

        ·告诉小娜我是MMM我想要存¥¥¥

        ·小娜打开仓库把钱放进去

        ·小娜把业务(transaction)记录好

        ·告诉你业务办好了

        ·顾客离开银行

        这大大节省了客户的时间,同时也提高了银行的效率。同理如果我们将操作的具体实施步骤也进行抽象化,这将会大大降低开发人员的负担(去除记忆所有的步骤花费的力气),从而大大提高效率;

3、我的理解的 API 中所包含:

        Aplication(软件组件);

        Protocol (协议):规定了各部分之间如何进行信息交互的规则和步骤;

        Interface(接口):我认为在API里的接口可以看做是一个接待窗口,对各个软件组件开 放,他们可以通过接口来实现与其他组件的信息交互;

        Format(格式):要进行信息交互,我们又意识到交互双方语言必须相同呀,对吧。所    以又引出了另一个概念 格式(format) ,在程序员的世界里,通用的格    式包含 XML 和 JSON

        这时我们假设:银行现在想要扩展业务到股市,那么小娜自然无法胜任这个工作,这时候我们呢就需要另一位接待员来处理股票的相关业务了,这时,小冰就登场啦!

        在 API 术语里,API端点 通常是指一个接口中提供特定功能的子集的服务提供者,所以 小娜 和 小冰 都是 端点,而 柜台 就是 接口,不同的端点可以有不同的协议和不同的格式。

        我们可以发现上图中客户和银行想要进行信息交互,必须通过柜台,不能直接交互双方都不能越界

补充

客户端JavaScript中的API

        客户端JavaScript中有很多可用的API — 他们本身并不是JavaScript语言的一部分,却建立在JavaScript语言核心的顶部,为使用JavaScript代码提供额外的超强能力。他们通常分为两类:

  • 浏览器API内置于Web浏览器中,能从浏览器和电脑周边环境中提取数据,并用来做有用的复杂的事情 。例如Geolocation API提供了一些简单的JavaScript结构以获得位置数据,因此您可以在Google地图上标示您的位置。在后台,浏览器确实使用一些复杂的低级代码(例如C++)与设备的GPS硬件(或可以决定位置数据的任何设施)通信来获取位置数据并把这些数据返回给您的代码中使用浏览器环境;但是,这种复杂性通过API抽象出来,因而与您无关。
  • 第三方API缺省情况下不会内置于浏览器中,通常必须在Web中的某个地方获取代码和信息。例如Twitter API 使您能做一些显示最新推文这样的事情,它提供一系列特殊的结构,可以用来请求Twitter服务并返回特殊的信息。

API可以做什么?

常见浏览器API

  • 操作文档的API内置于浏览器中。最明显的例子是DOM(文档对象模型)API,它允许您操作HTML和CSS — 创建、移除以及修改HTML,动态地将新样式应用到您的页面,等等。每当您看到一个弹出窗口出现在一个页面上,或者显示一些新的内容时,这都是DOM的行为。 您可以在在Manipulating documents中找到关于这些类型的API的更多信息。
  • 从服务器获取数据的API 用于更新网页的一小部分是相当好用的。这个看似很小的细节能对网站的性能和行为产生巨大的影响 — 如果您只是更新一个股票列表或者一些可用的新故事而不需要从服务器重新加载整个页面将使网站或应用程序感觉更加敏感和“活泼”。使这成为可能的API包括XMLHttpRequestFetch API。您也可能会遇到描述这种技术的术语Ajax。您可以在Fetching data from the server找到关于类似的API的更多信息。
  • 用于绘制和操作图形的API目前已被浏览器广泛支持 — 最流行的是允许您以编程方式更新包含在HTML <canvas> 元素中的像素数据以创建2D和3D场景的CanvasWebGL。例如,您可以绘制矩形或圆形等形状,将图像导入到画布上,然后使用Canvas API对其应用滤镜(如棕褐色滤镜或灰度滤镜),或使用WebGL创建具有光照和纹理的复杂3D场景。这些API经常与用于创建动画循环的API(例如window.requestAnimationFrame())和其他API一起不断更新诸如动画和游戏之类的场景。
  • 音频和视频API例如HTMLMediaElementWeb Audio APIWebRTC允许您使用多媒体来做一些非常有趣的事情,比如创建用于播放音频和视频的自定义UI控件,显示字幕字幕和您的视频,从网络摄像机抓取视频,通过画布操纵(见上),或在网络会议中显示在别人的电脑上,或者添加效果到音轨(如增益,失真,平移等) 。
  • 设备API基本上是以对网络应用程序有用的方式操作和检索现代设备硬件中的数据的API。我们已经讨论过访问设备位置数据的地理定位API,因此您可以在地图上标注您的位置。其他示例还包括通过系统通知(参见Notifications API)或振动硬件(参见Vibration API)告诉用户Web应用程序有用的更新可用。
  • 客户端存储API在Web浏览器中的使用变得越来越普遍 - 如果您想创建一个应用程序来保存页面加载之间的状态,甚至让设备在处于脱机状态时可用,那么在客户端存储数据将会是非常有用的。例如使用Web Storage API的简单的键 - 值存储以及使用IndexedDB API的更复杂的表格数据存储。

常见第三方API 

第三方API种类繁多; 下列是一些比较流行的你可能迟早会用到的第三方API:

  • The Twitter API, 允许您在您的网站上展示您最近的推文等。
  • The Google Maps API 允许你在网页上对地图进行很多操作(这很有趣,它也是Google地图的驱动器)。现在它是一整套完整的,能够胜任广泛任务的API。其能力已经被Google Maps API Picker见证。
  • The Facebook suite of API 允许你将很多Facebook生态系统中的功能应用到你的app,使之受益,比如说它提供了通过Facebook账户登录、接受应用内支付、推送有针对性的广告活动等功能。
  • The YouTube API, 允许你将Youtube上的视频嵌入到网站中去,同时提供搜索Youtube,创建播放列表等众多功能。
  • The Twilio API, 其为您的app提供了针对语音通话和视频聊天的框架,以及从您的app发送短信息或多媒体信息等诸多功能。

  • 42
    点赞
  • 203
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值