api什么意思(网页调用api接口)( 二 )


应用程序接口Web服务最初被设计为使用SOAP(简单对象访问协议)进行通信,SOAP是一种通过HTTP发送XML文档的消息传递协议 。然而,现在大多数基于Web的API使用REST(具体状态转移)作为它们的架构风格 。
它是由REST Roy Fielding在2000年的博士论文中正式提出的 。它是一组架构组件、设计原则和交互,用于构建涉及任何类型媒体(文本、视频等)的分布式系统 。).从本质上讲,REST是一种构建系统的风格,它允许在 上灵活地交流和显示信息,同时提供了轻松构建通用组件所需的结构 。
在REST API中,资源几乎可以是任何东西,但是例子包括用户、tweets列表和tweets搜索的当前结果 。这些资源中的每一个都可以在资源标识符中寻址,在基于web的REST API中,这个标识符通常是一个URL 。当应用程序使用标识符请求资源时,API以应用程序可以使用的格式(如JPEG图像、HTML页面或 ON)将资源的当前表示传递给应用程序 。
REST的主要区别之一是它涉及到向请求应用程序发送数据 。虽然这提供了很大的灵活性,并允许应用程序对数据做任何想做的事情,但这是以效率为代价的 。通过Web发送数据进行处理比在数据所在位置进行处理然后发送结果要慢得多 。
当然,“高效” 的问题在于,托管数据的系统需要预先知道应用程序想用它做什么 。因此,REST是构建具有通用可用性和灵活性的API的唯一途径 。
示例API有很多公共API供你交互,很多都是行业巨头的 。通过API以编程方式访问一些平台公司代码的能力使它们本质上成为一个平台 。一些著名的API示例包括:
Google APIs,允许您将代码连接到从地图到翻译的所有 Google 服务 。API 对 Google 来说非常重要,以至于他们收购了领先的 API 管理平台Apigee 。Facebook APIs,允许你以编程方式访问 Facebook 的社交图谱和营销工具 。(在 Cambridge Analytica 和其他丑闻的影响下,该公司一直在限制你可以通过这些 API访问的用户数据 。)为了真正理解API是如何工作的,让我们深入研究两个:Java API,Java开发人员用来与Java平台进行交互的API,以及Twitter API,一个公共API,您将用来与社交媒体进行交互 。
简介Java API是一个“开箱即用”的软件组件库,任何安装了Java开发工具包的人都可以使用 。这些组件执行常见的任务,通常会提高生产率,因为程序员不必每次都从头开始 。该软件中使用的一个基本组件是一个叫做列表的东西,正如您所料,它跟踪项目列表 。Java API定义了可以在列表上执行的操作:添加项目、对列表排序、确定项目是否在列表中,等等 。它还指定了如何执行这些操作 。为了对列表进行排序,您需要指定如何对列表进行排序:按字母顺序、数字降序、从最亮到最暗的颜色等等 。
应用编程接口Twitter API是一个基于web的 ON API,允许开发人员以编程方式与Twitter数据进行交互 。与Java开发工具包中包含的Java API不同,Twitter API是一个基于web的API 。您必须通过互联网向Twitter托管的服务发出请求才能访问它 。
使用基于web的API(比如Twitter ),您的应用程序将发送HTTP请求,就像Web浏览器一样 。但是对于人类的理解来说,响应不是以网页的形式传输,而是以应用程序容易解析的格式返回 。这有各种格式,Twitter使用一种流行且易于使用的格式,称为 ON 。
Twitter的基本元素之一是tweets 。Twitter API告诉你可以用tweets做什么
:搜索tweets,创建tweets,收集tweets 。它还告诉您如何执行这些操作 。要搜索推文,您需要指定搜索标准:您要查找的术语或主题标签、地理位置、语言等 。
API设计API设计者制定API的“内容”和“ ”的过程 。和其他任何可以创造的东西一样,API设计中的思路和程度不同,导致API质量程度不同 。设计良好的API具有一致的行为,考虑其上下文并牢记用户的需求 。
API中的一致行为很大程度上影响了它的学习速度和程序员在使用时出错的可能性 。一般来说,执行类似操作的API应该表现类似,不管它们在技术上有什么不同 。关于API不一致的例子,我们来看两种在Java中国列表中添加条目的 :
即使向列表中添加项目的两种 做了同样的事情,它们的返回类型(boolean和void)也是不同的 。使用该API的开发人员现在必须跟踪哪个 返回哪个类型,这使得API更难学习,其使用也更容易出错 。这也意味着使用这些 的代码变得不太灵活,因为如果你想改变添加元素的方式,就必须改变 。
考虑上下文是一致性的另一种形式,尽管它与API之外的因素有关 。一个很好的非软件例子是道路规则(右侧通行或左侧通行)如何影响不同国家/地区的汽车设计 。汽车设计师在将驾驶座放在汽车的右侧或左侧时,会考虑环境因素 。