首页 > 后端开发 > Python教程 > 在 Python 中使用 API:实用指南

在 Python 中使用 API:实用指南

Susan Sarandon
发布: 2025-01-04 01:09:39
原创
655 人浏览过

摘录:
“API 使软件应用程序模块化。它们加快了软件开发时间”。

应用程序编程接口(或 API)是一个抽象层,可实现不同软件应用程序和组件之间的通信。这种沟通是如何发生的? Web API 恰好是我们将在本文中详细讨论的内容,它位于客户端使用的软件应用程序和存储信息的数据库之间。请在此处了解不同类型的 API。通信的发生与编写各个软件应用程序所使用的编程语言无关;无论是 Python、Java、JavaScript 等。只要从软件应用程序发送到 API 的请求有效,无论是检索、更新、删除还是创建操作。

想象一下像 Instagram 这样的社交媒体平台,其中特定用户发布了一张图片,内部发生的情况是用户正在向规定的 Instagram API 端点发出 POST 请求;发送图片到数据库。另一个用户可以通过向 API 发出 GET 请求来查看该帖子,而在滚动时间轴时甚至不知道这一点。您会看到那里存在通过 API 进行的通信。

即使两个用户通过 API 使用不同语言编写的软件应用程序进行通信,情况也可能如此。
下图显示了两个不同的软件应用程序通过 API 进行通信。

Working with APIs in Python: A Practical Guide

作者照片

此外,API 使软件应用程序模块化。它们加快了软件开发时间。模块化是指 API 实现与我们的代码库分离,我们只需调用 API。它加快了开发时间,因为我们不必从头开始编写提供与 API 类似的功能的代码,我们只需调用它即可。

在本文中,您将学习如何使用 Python 使用公开可用的 API。敬请关注。

先决条件

本文适合初级 Python 程序员,他们希望通过 Python 中的具体实现来加深对 API 的理解。
要一起练习,请确保您的机器已连接到互联网。

本文也可以作为经验丰富的 Python 开发人员的复习工具。

目标

读完本文后,您应该:
了解 Python 中的 requests 库。
了解如何发出 GET、PUT、PATCH、DELETE 和 POST 请求。
了解如何在代码中存储和利用从 API 调用接收到的数据。

了解请求库

requests 是下载次数最多的 Python 软件包之一,根据 pypi 的数据,每周下载量约为 3000 万次。它使您能够在 Python 中轻松发送 HTTP 请求。 requests 是一个经过测试且值得信赖的 Python 包,被 IBM 等许多知名品牌所使用。在这里找到源代码。
请求的一些“受人喜爱”的功能是:

  • 保持活动状态和连接池

  • 国际域名和 URL

  • 具有 Cookie 持久性的会话

  • 浏览器式 SSL 验证

  • 自动内容解码

  • 基本/摘要式身份验证

  • 优雅的键/值 Cookie

  • 自动解压

  • Unicode 响应体

  • HTTP(S) 代理支持

  • 分段文件上传

  • 流式下载

  • 连接超时

  • 分块请求

  • .netrc 支持

请求入门

我假设您的计算机上已经安装了 Python。按照以下说明安装 requests 包:
在 Linux 或 Mac OS 上打开终端并执行以下操作:

python3 -m pip install requests
登录后复制
登录后复制

在 Windows 上:

python -m pip install requests
登录后复制
登录后复制

这会将 请求包下载到您的计算机。

发出 GET 请求

发出 GET 请求来检索现有数据。它返回一个对象,可以进一步探索该对象,以通过调用其所需属性来获取有关所发出请求的更多详细信息。请参阅下面的示例用法:

  • 创建一个Python文件,例如get_request.py,在文件中写入以下代码:
# Import the requests module
import requests

# Making a simple GET request
response_object = requests.get("https://jsonplaceholder.typicode.com/posts")

登录后复制
登录后复制

从response_object中,可以调用不同的属性:
status_code: 响应的 HTTP 状态代码。

  • .text:响应正文作为字符串。
  • .json():将响应正文解析为 JSON(如果适用)。
  • .content:作为原始字节的响应正文。
  • .headers:响应头的字典。
  • .cookies:服务器设置的Cookie。
  • .url:重定向后的最终URL。
  • .已过去 在本文中,我们将更多地关注 .json() 属性。 在 requests.py 文件中,调用 response_object 上的 .json() 属性
json_data = response_object.json()
print(json_data)
登录后复制
登录后复制

返回的 JSON 存储在 json_data 变量中,可以在您的程序中使用。
以下内容将输出到您的控制台。

Working with APIs in Python: A Practical Guide

发出 POST 请求

POST 请求将数据发送到指定端点,创建一条新记录。与寻求检索现有数据的 GET 方法不同。请按照以下步骤发出帖子请求:

  • 创建一个名为 post_request.py 或任何方便的名称的新文件。在文件中写入以下代码:
python3 -m pip install requests
登录后复制
登录后复制

这会将数据发送到规定的端点,并返回一个响应对象;该对象拥有有关发送的 POST 请求的一些有用信息。可以通过调用对象上合适的属性来访问它。
调用响应对象上的 status_code 属性以确保操作成功。更新您的代码。

python -m pip install requests
登录后复制
登录后复制

它返回 201,这表明您的 POST 请求成功并且已创建新资源。如下图所示。

Working with APIs in Python: A Practical Guide

发出 PUT 请求

PUT 请求涉及用新记录替换现有记录;它从发送者或客户端获取新数据并用它替换现有数据。
这是发出 PUT 请求的方式:

  • 创建一个新的Python文件,在本文中,我们使用put_request.py。在其中写入以下代码。
# Import the requests module
import requests

# Making a simple GET request
response_object = requests.get("https://jsonplaceholder.typicode.com/posts")

登录后复制
登录后复制

发出 DELETE 请求

这确保删除特定记录或数据。要删除的记录始终通过其唯一 ID 来指定,该 ID 通常是指定的。
这是执行 DELETE 操作的方式:

  • 创建一个新的 Python 文件,在本文中,我们使用 delete_request.py。在其中写入以下代码:
json_data = response_object.json()
print(json_data)
登录后复制
登录后复制

发出 PATCH 请求

每当您想要对现有记录或数据进行部分更改时,请使用 PATCH 方法。

  • 创建一个新的Python文件,在本文中,我们使用patch_request.py。在其中写入以下代码:
# Import the requests module
import requests


# Making a simple POST request


data = {'userId': 1, 'id': 1, 'title': 'This is for POST request', \
        'body': 'This body is modified for this technical writing article by Augustine Alul'}
response_object = requests.post("https://jsonplaceholder.typicode.com/posts/", data=data)


print(response_object.status_code)

登录后复制

结论

requests 库提供了一种在 Python 代码中发出 HTTP 请求的简单方法;它可以轻松地与 API 进行交互,并返回一个对象,该对象通过简单地调用所需的属性(可以在文章中找到这些属性)来提供有关所发出请求的有用信息。
在 Python 中使用 API 从未如此简单 - 还有其他流行的库可用于与 Python 中的 API 交互,但选择 requests 库是因为它的简单性。
感谢您坚持阅读本文的结尾,这为您开始使用 Python 中的 API 提供了良好的背景。

以上是在 Python 中使用 API:实用指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板