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

article/2025/10/19 19:38:09

新浪微博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应用程序接口


http://chatgpt.dhexx.cn/article/DHMy6byZ.shtml

相关文章

Python3调用新浪微博API抓取数据

本文介绍基于Python3通过调用新浪微博API方式采集用户信息的案例。 1.前期准备 编程语言:Python3.0下载库:sinaweibopy3编辑软件:Spyder 2.获取微博授权 进入http://open.weibo.com/apps/new?sortweb获取App Key以及App Secret。具体方法…

社交媒体爬虫------调用微博API获取微博内容

一.创建应用 创建应用的目的是获取app-key和app-secret,并设置授权回调页。 (1)获取app-key和app-secret 登陆微博开放平台创建应用http://open.weibo.com/apps/new?sortweb 应用名称以及后续的信息随便填,填写完毕后&#xff…

python抓取微博数据_技术入门 | python利用微博api获取数据

技术入门 | python利用微博api获取数据 文 | thewords 这也是跳票许久的分享。在写之前发现目前比较少公开的第三方api,有些还停止维护,所以在一轮筛选后选择了微博api进行实践。 01 申请开发者权限 1) 进入微博开放平台,完成开发者认证 …

调用微博API获取微博内容

调用微博API获取微博内容 在采集微博数据的时候,可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作,第一步是创建应用,第二步是安装微博SDK. 一.创建应用 创建应用的目的是获取app-key和app-secret,并设置授权回…

java 微博 api_Java使用新浪微博API开发微博应用的基本方法

新浪微博API现在运用比较广泛,做一个完整的开发流程Demo 1、第一步注册,就不多说了,注册帐号以及成为开发者帐号,这步操作不会的话请你马上砸掉电脑拔掉网线回家种田。 2、第二步创建应用,开发者帐号创建好了&#xff…

新浪微博api的使用

在采集微博数据的时候,可以利用微博的API来进行调用。在调用微博APi的时候需要做两项工作,第一步是创建应用,第二步是安装微博SDK. 创建应用 创建应用的目的是获取app-key和app-secret,并设置授权回调页。 登陆微博开放平台创…

微博开放平台api使用

前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分…

【转载】使用微博API接口获取数据

巧妇难为无米之炊。 数据获取是数据分析的前提。许多网站会通过API接口向第三方开放网站的部分数据。新浪微博也不例外。你可以查看微博API列表。 商业数据API为(如place/nearby_timeline/biz)为收费接口,若想要调用这一类接口,…

微博官方API使用方法【全流程教学】

微博官方API使用方法【全流程教学】 微博开发者身份认证创建自己的应用新应用的相关配置基本信息高级信息 微博认证流程OAuth2.0认证(核心步骤)Access Token授权有效期接口调用Demo(以评论接口为例) 微博开发者身份认证 访问微博开放平台,登录自己微博账…

一文教会你JDK8的函数式编程

JDK8的1个新特性就是支持函数式接口(Functional Interface)。 函数式接口就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为Lambda表达式。 我们也可以自行定义函数式接口,如: FunctionalInterface interf…

Modern C++ 学习笔记——C++函数式编程

往期精彩: Modern C 学习笔记——易用性改进篇Modern C 学习笔记 —— 右值、移动篇Modern C 学习笔记 —— 智能指针篇Modern C 学习笔记 —— lambda表达式篇Modern C 学习笔记 —— C面向对象编程Modern C 学习笔记 —— C函数式编程 Modern C 学习笔记——C函数…

java8函数式编程实例

什么是函数式编程 函数式编程是java8的一大特色,也就是将函数作为一个参数传递给指定方法。别人传的要么是基本数据类型,要么就是地址引用 ,我们要穿一个“动作”。 Stream 说到函数式编程,就不得不提及Stream,Stre…

Scala函数式编程

一、函数式编程定义: Scala是一门既面向对象,又面向过程的语言。在Scala中,函数与类、对象地位是一样,所以说scala的面向过程其实就重在针对函数的编程 了,所以称之为函数式编程 在Scala中定义函数需要使用 def 关键…

什么是函数式编程?

当我们说起函数式编程来说,我们会看到如下函数式编程的长相: 函数式编程的三大特性: immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修…

python函数式编程

大家好 这里还还还是长弓 今天我们来讲讲python中的函数式编程 目录 函数式编程 高阶函数 map reduce filter sorted 返回函数 闭包 nonlocal使用 匿名函数lambda 装饰器 偏函数 函数式编程 有些同学疑惑了,我们已经学了函数,为什么还要学这…

函数式编程

Functional Programming 什么是函数式编程 函数式编程的思维方式:把显示世界的事务和事物之间的联系抽象到程序世界(对运算过程进行抽象) 函数式编程中的函数指的数学中的函数即映射关系,输入的值对应一个输出的值,…

appium环境搭建python_appium环境搭建python

1,appium是开源的移动端自动化测试框架;2,appium可以测试原生的、混合的、以及移动端的web项目;3,appium可以测试ios,android应用(当然了,还有firefox os);4,appium是跨平…

Windows下Appium环境搭建小结

文章目录 Windows下Appium环境搭建小结需要安装的软件1. JDK下载安装/配置 2. Android SDK3. Maven下载安装/配置 4. Appium下载安装/配置 5. Eclipse TestNG 和 ADT 插件下载安装一条龙配置1、先配置Maven 创建一个项目 Windows下Appium环境搭建小结 本文需要读者已安装了Ec…

Mac端Python+Appium环境搭建

一、安装java sdk java安装:下载完直接安装jdk1.8 二、 安装Android Studio 1.下载安装 下载地址:https://www.androiddevtools.cn/# 2.安装完成后,打开SDK Manager 三、JAVA SDK和Android SDK环境变量配置 1.终端输入:ls…

安卓移动端appium环境搭建流程

安卓移动端appium环境搭建流程 基本步骤: 安装Node.js 安装JDK,及配置环境变量 安装SDK,及配置环境变量 安装Appium桌面版本(建议安装GitHub的最新版) python中pip下载Appium-Python-Client 下载allure-2.13.8并加入环境变量 管理员身份运行appiu…