目录
介绍
什么是API?
什么是REST架构
REST API
HTTP请求
响应
如何通过REST API使用Python请求
第 1 步:在终端上使用pip命令安装Python请求模块
第 2 步:接下来,您必须使用GET请求数据
第 3 步:检索您想要的数据(这里是Fox的随机图片)
替代方式/另一种方法
使用图像键
使用链接键
结论
如果您是开发人员(尤其是Python开发人员)并正在寻找基本指南来学习如何将Rest API与Python结合使用,那么您来对地方了,您将以非常简单的方式了解与Python结合使用的Rest API。
API是应用程序编程接口的首字母缩写。API充当接口,一个应用程序通过该接口使第三方应用程序可以访问其数据。
API最常见的用途是通过发出在整个网络上使用的请求来从远程网站检索数据。我们每天都看到的最常见的API用法是“使用Facebook登录(Facebook Login API)/Twitter/Google/Github”。应用程序不是直接登录到用户的社交媒体帐户,而是使用API在每次登录时对用户进行身份验证。
REST代表Representational state transfer,它是一种用于Web服务的API的软件架构风格。REST包含一组约束,旨在简化客户端/服务器通信的软件架构。
REST的一些架构约束如下:
有关更多信息,请查看维基百科。
我们已经讨论过API用于从远程网站检索数据。但问题是我们如何向远程Web服务器发出请求并检索数据?好吧,这是通过使用URL端点来完成的,该端点是提供API的地方,每个URL称为HTTP请求,而被发送回的数据称为响应。
HTTP请求由以下组件组成:
1、Endpoint:指示您正在与之交互的数据的URL。根端点是用户请求的API的起点。例如,https://www.university.com/students。
/students是端点,https://www.university.com/是起始URL。
2、方法:REST API提供了启用创建、读取、更新和删除功能的方法。REST API使用的方法如下:
对于每个请求,都会从API收到响应。
例如:终端上的curl命令可以向Open Notify API发出GET请求,该API提供有关当前在太空中的宇航员的信息:
curl -X GET "http://api.open-notify.org/astros.json"
通过上面的命令,您可以看到JSON格式的响应,其中提供了有关这些宇航员的数据。
现在,让我们了解如何使用Python请求与REST API集成。首先,确保您的主机上安装了Python和pip 。(在本教程中,我使用的是Linux),然后按照以下步骤操作:
pip 安装请求
现在您可以开始使用Python请求与REST API进行交互,您应该将Requests库导入到您想要在其中使用它的特定Python脚本中:
该GET方法用于从REST API检索我们感兴趣的任何资源的数据。在这里,我们将使用https://randomfox.ca/ ,它每次都会给你一张随机的小狐狸图片。
我们必须创建一个对象或变量来存储我们将从上述网站的服务器获取的所有内容,以响应GET请求,包括标头和数据有效负载。
response = requests.get("https://randomfox.ca/floof")
print(response.status_code)
您可以从对象中访问很多内容,其中print(response.status_code)行将在您发出HTTP请求时返回一个状态代码,该状态代码将通知您请求是如何进行的。默认值为200或“Ok”,这意味着响应顺利并且返回的所有信息都很好。
其他HTTP码表如下:
所以现在,我们将使用作为请求一部分的JSON函数。所有或大部分API都使用一种称为JSON(有点像Python字典)的语言,这是一种与API信息通信的标准,其格式与网站上给出的格式相同。
可以通过几种方式访问请求的内容,例如:
response.content() # Return raw bytes of data payload
response.text() # Return string representation of data payload,
# as it is string we can’t pull any data
response.json() # Convenient when the API returns JSON
response.content()
如果我们使用它,我们将获得原始格式的数据。
response.text()
如果我们使用它,我们的数据将是字符串格式。
response.json()
所以要得到我们需要的,即随机狐狸图片,我们必须使用JSON函数。我们必须用print(response.text())替换我们的print(response.status_code)(从第2步开始),我们的最终代码将如下所示:
Import requests
response = requests.get("https://randomfox.ca/floof")
print(response.json())
当我们使用JSON打印时,我们实际上是在使用字典。所以我们可以创建一个新变量(fox_img)并将其设置为response.json()。response.json()将获取字典并将其放入新变量(fox_img)中,现在我们可以从中获取任何数据并将其打印出来。
例如:我们有两个键“image”和“link”,我们可以使用它们来修改我们的代码。
由于我们使用了图像键,API将在字典中查找图像键并打印其值。
import requests
response = requests.get("https://randomfox.ca/floof")
fox_img=response.json()
print(fox_img['image'])
输出
所以我们只有那个链接到我们图像的string,而不是整个字典。
在这里,我们使用了链接键,因此API现在将在字典中查找链接键并打印其值。
代码
import requests
response = requests.get("https://randomfox.ca/floof")
fox_img=response.json()
print(fox_img['link'])
Output:
在这里,我们只得到了链接,因为它是链接键的值。
这是一个非常简短且对初学者友好的教程,让您了解如何在Python中使用Rest API,您可以使用API做更多事情。获得数据后,您可以以自己的方式使用它,并将其应用于您的任何项目以创造奇迹。
https://www.codeproject.com/Articles/5319146/How-to-Use-Rest-API-with-Python