新浪微博API应用程序接口_什么是API? 应用程序编程接口说明

新浪微博API应用程序接口

API代表应用程序编程接口,该概念广泛应用于从命令行工具到企业Java代码再到Ruby on Rails Web应用程序。 API是一种通过编程方式与单独的软件组件或资源进行交互的方式。

除非您从头开始编写每一行代码,否则您将与外部软件组件进行交互,每个组件都有自己的API。 即使您确实完全是从头开始编写东西,一个经过精心设计的软件应用程序也将具有内部API,以帮助组织代码并提高组件的可重用性。 并且有许多公共API,使您可以利用Web上其他地方开发的功能。

[ 同样在InfoWorld上:Git和GitHub用户的27个基本技巧 ]

什么是API?

API被定义为与软件组件可能进行交互的规范。 到底是什么意思? 好吧,想象一下汽车是一个软件组件。 它的API将包括关于它能做什么 ,加速信息,刹车,打开收音机等,也包括你如何能够让它做这些事情的信息。 例如,要加速,您可以将脚踩到油门踏板上并推动。

当您踩油门加速器时,API不必解释引擎内部会发生什么。 这就是为什么,如果您学会了驾驶带有内燃机的汽车,那么无需学习整套新技能就可以摆脱电动汽车的束缚。 API 定义中的信息内容方式是抽象的,与汽车本身是分开的。

要记住的一件事是,某些API的名称经常用于指代交互的规范以及与之交互的实际软件组件。 例如,“ Twitter API”一词不仅指通过编程方式与Twitter进行交互的规则集,而且通常被理解为表示您与之进行交互的内容,例如“我们正在分析从中获得的推文Twitter API 。”

API作为抽象层

在软件方面,API实际上无处不在。 API与计算机科学中最基本的概念之一:抽象。 抽象只是组织系统复杂性的一种方法,因此可以用简单的方式处理复杂的动作。 可以将这种抽象想像成那些Amazon Dash Buttons ,即电池供电的按钮式电路板,您可以用来从Amazon订购订书钉。 这是他们的样子:

亚马逊破折号按钮 IDG

Amazon Dash按钮的一些示例。 按下按钮,订购更多的清洁剂或纸巾。

您从亚马逊订购了Dash Button,并使用智能手机上的应用程序将其与Wi-Fi网络,您的Amazon帐户以及某种产品(例如,您最喜欢的纸巾品牌)相关联。 然后,每当您想订购更多纸巾时,只需按一下按钮。 Dash按钮连接到Internet,并发送一条消息以在您的帐户上下订单。 几天后,纸巾到达您家门口。

与API一样,Dash Button是一个非常简单的界面,将各种复杂性隐藏在幕后。 您订购的产品的ID必须从某些数据库中检索。 您的收货地址必须从您的帐户中提取。 必须确定存放您的纸巾的最近的履行中心,然后通知将其从可用的存货中取出并包装。 最后,必须将包裹与其他包裹一起通过飞机,卡车和货车的某种组合,以确保所有包裹都能有效到达目的地的方式进行运输。

[ 同样在InfoWorld上:10种最佳API管理工具 ]

现在想象一下,您作为客户必须协调所有这些事情。 您永远不会订购纸巾,因为它过于复杂且耗时,您还有更好的事情要做。 幸运的是,整个考验都离您很远。 一长串相互连接的计算机系统和人工流程使这些纸巾出现在您家门口,但是您只需要考虑一下按钮。

这就是程序员所喜欢的API。 它们需要大量的复杂性,并定义了一组相对简单的交互,您可以利用它们来代替自己完成所有操作。 在任何软件项目中,您可能直接使用数十个(如果不是数百个)API,并且每个API都依赖于其他API,依此类推。

公共API和API集成

API是计算机编程中一个长期存在的概念,多年来已成为开发人员工具集的一部分。 传统上,API用于连接在同一台计算机上运行的代码组件。 随着无处不在的网络的兴起,越来越多的公共API(有时称为开放API)变得可用。 公共API 面向外部并且可以通过Internet访问 ,从而使您可以编写与在线其他供应商的代码进行交互的代码。 此过程称为API集成。

这些类型的代码混搭允许用户在自己的系统上混合和匹配来自不同供应商的功能。 例如,如果您使用市场营销自动化软件Marketo,则可以在那里使用Salesforce CRM功能同步数据。

在这种情况下,“开放”或“公开”不应解释为“免费”。 您仍然需要成为Marketo和Salesforce的客户才能正常工作。 但是,这些API的可用性使集成过程比原本要简单得多。 ( InfoWorld有很多您应该了解的公共API列表 。)

Web服务和API

您可能会回想起00年代初期的web 服务一词,并认为开放API的想法听起来很相似。 实际上,Web服务是一种特定的开放API,它满足一组相当严格的规范,包括以XML形式的Web服务描述语言(WSDL)指定的规范。

Web服务原本应被用作面向服务的体系结构(SOA)的一部分。 正如Nordic API博客所解释的那样,这给Web服务起了坏名声,因为SOA从未完全发挥其潜力。 用于服务到服务通信的技术的进步(尤其是更轻便,更灵活的REST)也使Web服务在公共API领域有些落后。

REST API

Web服务最初被设计为使用SOAP(简单对象访问协议)进行通信,SOAP是一种通过HTTP发送XML文档的消息传递协议。 但是,如今,大多数基于Web的API都使用REST(表示状态传输)作为体系结构样式。

REST由Roy Fielding于 2000年在其博士学位论文中正式引入。它是一组体系结构组件,设计原理以及用于构建涉及任何类型的媒体(文本,视频等)的分布式系统的交互。 REST的核心是一种构建系统的样式,它允许在整个Web上进行灵活的通信和信息显示,同时提供轻松构建通用组件所需的结构。

在REST API中, 资源几乎可以是任何东西,但是示例包括用户,推文列表以及搜索推文的当前结果。 这些资源中的每一个都可以在资源标识符处寻址,在基于Web的REST API的情况下, 资源标识符通常是URL,例如https://api.twitter.com/1.1/users/show?screen_name=twitterdev 。 当应用程序使用标识符请求资源时,API会以该应用程序可以使用的格式(例如JPEG图像,HTML页面或JSON)将该资源的当前表示形式传递给应用程序。

[ 同样在InfoWorld上:什么是CI / CD? 持续集成和持续交付的解释 ]

REST的最大与众不同之一是它涉及将数据发送到发出请求的应用程序。 尽管这提供了极大的灵活性,允许应用程序对数据做任何想做的事情,但这是以效率为代价的。 与通过数据驻留然后再发送结果的处理相比,通过Web发送数据进行处理的速度相当慢。

当然,“有效”方法的问题在于,托管数据的系统需要提前知道应用程序要使用哪些数据。 因此,为了构建具有通用用途和灵活性的API,REST是必经之路。

API示例

有许多公共API供您与之交互,其中许多来自行业巨头。 本质上,能够通过API以编程方式访问某些平台公司的代码的能力使它们成为了平台。 一些著名的API示例包括:

  • Google API ,可让您将代码连接到从Maps到Translate的所有Google服务。 API对Google是如此重要,以至于他们收购了领先的API管理平台Apigee
  • Facebook API ,可让您以编程方式访问Facebook的社交图谱和营销工具。 (该公司一直限制在剑桥分析公司(Cambridge Analytica)和其他丑闻的影响下, 您可以通过这些API 访问哪些用户数据 。)

为了真正了解API的工作原理,让我们深入研究两个:Java API(Java开发人员用于与Java平台进行交互)和Twitter API(Twitter API),用于与社交平台进行交互的公共API。网络服务。

Java API

Java API是一个软件组件库,任何安装Java Development Kit的人都可以直接使用。 这些组件执行常见任务并通常提高生产率,因为程序员不必每次都从头开始。 软件中使用的基本组件之一就是列表,如您所料,它可以跟踪项目列表。 Java API定义您可以对列表执行的操作:添加项目,对列表进行排序,确定项目是否在列表中等等。它还指定了如何执行这些操作。 为了对列表进行排序,您需要指定对列表进行排序的方式:按字母顺序,数字降序,最亮到最暗的颜色等。

openjdk api排序 IDG

列表的排序方法的OpenJDK API文档 。 比较器是确定列表排序方式的参数。

Twitter API

Twitter API是基于Web的JSON API,允许开发人员以编程方式与Twitter数据进行交互。 与Java开发套件中包含的Java API不同,Twitter API是基于Web的API。 必须通过Internet向Twitter托管的服务发出请求来访问它。

使用基于Web的API(例如Twitter的API),您的应用程序就可以发送HTTP请求,就像Web浏览器一样。 但是,为了让人们理解,不是将响应作为网页发送,而是以应用程序可以轻松解析的格式返回。 为此,存在各种格式,Twitter使用了一种流行且易于使用的格式,称为JSON。 (如果您不熟悉JSON,则可能需要花一些时间在此处进行阅读。)

Twitter中的基本元素之一是鸣叫。 Twitter API告诉您如何使用推文:搜索推文,创建推文,收藏推文。 它还告诉您如何执行这些操作。 要搜索推文,您需要指定搜索条件:要查找的字词或主题标签,地理位置,语言等。

Twitter搜索API IDG

Twitter的Search API文档 。 在这里,您将找到查询推文范围所需的所有详细信息,从可用的搜索运算符到响应格式。

API设计

API设计是制定API的“内容”和“方式”的过程。 与可以创建的其他任何事物一样,API设计中会考虑不同级别的思想和关怀,从而导致API质量级别也有所不同。 精心设计的API具有一致的行为,可以考虑其上下文,并牢记用户的需求。

API内一致的行为会极大地影响其学习速度以及程序员使用该API时出错的可能性。 通常,执行相似动作的API的行为应相似,无论其技术差异如何。 对于一个不一致的API的示例,让我们看一下将项目添加到Java中的列表的两种方法:

Java列表 IDG

API不一致会给开发人员带来麻烦。 一个示例:Java提供了两种将项目添加到列表的方法。 一个返回一个布尔值,另一个返回一个空值。

即使将项目添加到列表的两种方法执行相同的操作,但它们的返回类型(布尔值和无效值)也不同。 使用此API的开发人员现在必须跟踪哪种方法返回哪种类型,从而使该API更加难以学习,并且其使用也更容易出错。 这也意味着使用这些方法的代码变得不太灵活,因为如果要切换添加元素的方式,则必须更改它。

考虑上下文是一致性的另一种形式,尽管它与API外部的因素有关。 一个很好的非软件示例就是道路规则(右手交通或左手交通)如何影响不同国家的汽车设计。 汽车设计师将驾驶员座椅放在汽车的右侧或左侧时,要考虑到环境因素。

翻译自: https://www.infoworld.com/article/3269878/what-is-an-api-application-programming-interfaces-explained.html

新浪微博API应用程序接口

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值