api什么意思(网页调用api接口)( 二 )
REST APIWeb服务最初被设计为使用SOAP(简单对象访问协议)进行通信,SOAP是一种通过HTTP发送XML文档的消息传递协议 。然而,现在大多数基于Web的API使用REST(比喻状态转移)作为它们的架构风格 。
Roy Fielding在2000年的博士论文中正式介绍了它 。它是一组架构组件、设计原则和交互,用于构建涉及任何类型媒体(文本、视频等)的分布式系统 。).从本质上讲,REST是一种构建系统的风格,它允许在网络上灵活地通信和显示信息,同时提供了轻松构建公共组件所需的结构 。
在REST API中,资源几乎可以是任何东西,但是例子包括用户、tweet列表和tweet搜索的当前结果 。这些资源中的每一个都可以通过资源标识符来寻址,在基于Web的REST API中,资源标识符通常是一个URL 。当应用程序使用标识符请求资源时,API以应用程序可以使用的格式(例如,JPEG图像、HTML页面或JSON)将资源的当前表示传递给应用程序 。
REST的一个很大的区别是它涉及到向请求应用程序发送数据 。虽然这提供了很大的灵活性,并允许应用程序对数据做任何想做的事情,但这是以效率为代价的 。通过网络发送数据进行处理要比在原地处理数据然后发送结果慢得多 。
当然,“高效”方法的问题在于,托管数据的系统需要预先知道应用程序想用它做什么 。所以,要想构建一个具有通用可用性和灵活性的API,REST是必由之路 。
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,您将用来与web服务的社交媒体交互 。
Java APIJava API是一个“开箱即用”的软件组件库,任何安装了Java开发工具包的人都可以使用 。这些组件执行常见的任务,通常会提高生产率,因为程序员不必每次都从头开始 。软件中使用的一个基本组件是一个叫做列表的东西,正如你所期望的,它记录了项目列表 。Java API定义了您可以在列表上执行的操作:添加项目、对列表排序、确定项目是否在列表中,等等 。它还指定了如何执行这些操作 。为了对列表进行排序,你需要指定列表的排序方式:按字母顺序,按数字降序,从最浅到最深的颜色等等 。
推特 APITwitter API是一个基于web的JSON API,它允许开发人员以编程方式与Twitter数据进行交互 。与Java开发工具包中包含的Java API不同,Twitter API是一个基于web的API 。你必须通过互联网向Twitter托管的服务发出请求才能访问它 。
使用基于web的API(比如Twitter ),您的应用程序将发送HTTP请求,就像Web浏览器一样 。但是对于人类的理解来说,响应并不是以网页的形式传递的,而是以应用程序容易解析的格式返回的 。为此,有各种格式 。Twitter使用一种流行且易于使用的格式,称为JSON 。
Twitter的基本元素之一是tweets 。Twitter API告诉你可以用tweets做什么:搜索tweets,创建tweets,收集tweets 。它还告诉您如何执行这些操作 。要搜索推文,您需要指定搜索标准:您要查找的术语或主题标签、地理位置、语言等 。
API设计API设计者制定API的“内容”和“方法”的过程 。和其他任何可以创造的东西一样,API设计中的思路和程度不同,导致API质量程度不同 。一个设计良好的API具有一致的行为,考虑到它的上下文,并且牢记用户的需求 。
API中的一致行为很大程度上影响了它的学习速度和程序员在使用时出错的可能性 。一般来说,执行类似操作的API应该表现类似,不管它们在技术上有什么不同 。作为API不一致的一个例子,让我们来看看向Java中国列表添加项目的两种方法:
尽管向列表中添加条目的两种方法做了同样的事情,但是它们的返回类型(boolean和void)是不同的 。使用该API的开发人员现在必须跟踪哪个方法返回哪个类型,这使得该API更难学习,其使用也更容易出错 。这也意味着使用这些方法的代码变得不太灵活,因为如果你想改变添加元素的方式,它必须改变 。
考虑上下文是一致性的另一种形式,尽管它与API之外的因素有关 。一个很好的非软件例子是道路规则(右侧通行或左侧通行)如何影响不同国家的汽车设计 。汽车设计师在将驾驶座放在汽车的右侧或左侧时,会考虑环境因素 。
推荐阅读
- 宁波有什么好吃的(宁波十大特色点心)
- matlab有什么用(matlab功能介绍)
- fps和什么有关(fps跟什么配置有关)
- 什么牌子的精油最好(国内著名精油生产企业)
- 打完耳洞要注意什么(打完耳洞要天天转吗)
- 什么感冒药好(怎样辨别风寒和风热感冒)
- 高白料玻璃和高硼硅玻璃区别 你好 我想知道高硼硅玻璃与普通玻璃有什么区别?
- lol多玩盒子为什么用不了……LOL:多玩盒子为何会在几年前消失?
- cssci什么意思——期刊是核心期刊,那么CSSCI是什么意思
- 单性恋有没有可能治愈!性单恋是什么?
