摘录:
“API 使软件应用程序模块化。它们加快了软件开发时间”。
应用程序编程接口(或 API)是一个抽象层,可实现不同软件应用程序和组件之间的通信。这种沟通是如何发生的? Web API 恰好是我们将在本文中详细讨论的内容,它位于客户端使用的软件应用程序和存储信息的数据库之间。请在此处了解不同类型的 API。通信的发生与编写各个软件应用程序所使用的编程语言无关;无论是 Python、Java、JavaScript 等。只要从软件应用程序发送到 API 的请求有效,无论是检索、更新、删除还是创建操作。
想象一下像 Instagram 这样的社交媒体平台,其中特定用户发布了一张图片,内部发生的情况是用户正在向规定的 Instagram API 端点发出 POST 请求;发送图片到数据库。另一个用户可以通过向 API 发出 GET 请求来查看该帖子,而在滚动时间轴时甚至不知道这一点。您会看到那里存在通过 API 进行的通信。
即使两个用户通过 API 使用不同语言编写的软件应用程序进行通信,情况也可能如此。
下图显示了两个不同的软件应用程序通过 API 进行通信。
作者照片
此外,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 变量中,可以在您的程序中使用。
以下内容将输出到您的控制台。
发出 POST 请求
POST 请求将数据发送到指定端点,创建一条新记录。与寻求检索现有数据的 GET 方法不同。请按照以下步骤发出帖子请求:
- 创建一个名为 post_request.py 或任何方便的名称的新文件。在文件中写入以下代码:
python3 -m pip install requests
这会将数据发送到规定的端点,并返回一个响应对象;该对象拥有有关发送的 POST 请求的一些有用信息。可以通过调用对象上合适的属性来访问它。
调用响应对象上的 status_code 属性以确保操作成功。更新您的代码。
python -m pip install requests
它返回 201,这表明您的 POST 请求成功并且已创建新资源。如下图所示。
发出 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中文网其他相关文章!

本文讨论了Python版本3.10中介绍的新“匹配”语句,该语句与其他语言相同。它增强了代码的可读性,并为传统的if-elif-el提供了性能优势

Python中的功能注释将元数据添加到函数中,以进行类型检查,文档和IDE支持。它们增强了代码的可读性,维护,并且在API开发,数据科学和图书馆创建中至关重要。

本文讨论了Python中的单位测试,其好处以及如何有效编写它们。它突出显示了诸如UNITSEST和PYTEST等工具进行测试。

文章讨论了Python的\ _ \ _ Init \ _ \ _()方法和Self在初始化对象属性中的作用。还涵盖了其他类方法和继承对\ _ \ _ Init \ _ \ _()的影响。

本文讨论了python中@classmethod,@staticmethod和实例方法之间的差异,详细介绍了它们的属性,用例和好处。它说明了如何根据所需功能选择正确的方法类型和DA

Inpython,YouAppendElementStoAlistusingTheAppend()方法。1)useappend()forsingleelements:my_list.append(4).2)useextend()orextend()或= formultiplelements:my_list.extend.extend(emote_list)ormy_list = [4,5,6] .3)useInsert()forspefificpositions:my_list.insert(1,5).beaware


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版
好用的JavaScript开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具