Python实现动图生成:轻松创建自定义表情包
如何发起API 请求(使用 Postman)
注意:本文适用于那些对如何调用 API 知之甚少或一无所知的人士。
阅读并练习本文后,您将了解如何使用 Postman 执行具有 GET 方法的 API 调用,并了解相关术语。
什么是 API?为什么要使用 API?
简单来说,一个软件(我们假设这个软件是软件A)的API就是一个工具,它使得另一个软件X能够与软件A进行交互。
例如:Facebook 提供了 Facebook API。利用此 API,您可以编写软件/代码脚本来与您的 Facebook 帐户进行交互,而无需采用缓慢的点击式交互。
这种API提供的交互主要分为2个类别:
- 获取软件 A 的当前数据。示例:使用 Facebook API,您可以查看有关您的帐户的信息,例如帐户名称是什么,该帐户有多少个好友/帖子。
- 在软件 A 上编辑/创建新数据。示例:使用 Facebook API,您可以编辑您个人资料上的帖子,或创建新帖子。
那么为什么要使用 API?因为自动化。将操作转换为代码脚本可以实现自动化,从而实现比常规交互(例如点击)更快的执行速度。
API 类型
API 通常按格式分为 4 个主要类别:RPC、SOAP、REST 和 GraphQL。REST 是当今最流行的 API 格式之一。因此本文将使用公共 REST API 进行演示。
演示:如何使用 Postman 调用 API
本文将使用 Poke API(一种公共 REST API)进行演示。Poke API 用于与公共 Pokemon 数据库进行交互。我使用 Pokemon 资源(什么是资源?请参阅后面的解释)。Poke API 文档在此处:https://pokeapi.co/docs/v2
1)API 文档的结构
API 文档通常分为几个部分。每个部分都是一个可以使用 API 获取的数据表。
例如,查看Poke API 文档,您可以看到有名为 Berries、Contests、Encounters、Evolution 等的表组……
在每个表组中,都有一个可以使用 Poke API 获取的表列表。这些表称为 API 资源。例如,在 Pokemon 组中,有一个 Pokemon 表,其中列出了所有 Pokemon。
因此,使用 API 文档,我们将知道可以使用此 API 获取哪些表/资源。
2)从 Pokemon 表获取数据
2.1)API请求工具
要使用 API,我们需要一个工具来发出 API 请求。最流行的工具是:
- Postman:一个主要用于测试 API 请求的 Web 应用程序 / 桌面应用程序
- CURL:一个命令行工具
- 一种编程语言(例如 Python)
我将在本演示中使用 Postman。您可以在http://postman.com上使用 Postman 的网页版本。使用您的 Google 帐户登录,如果这是您第一次使用 Postman,请创建个人资料,然后您就可以开始了。登录后,您将看到下面视频中的屏幕。单击“新建”>“HTTP 请求”开始发出 API 请求。
2.2)检测发出 API 请求所需的输入
你需要:
要发出 API 请求,您至少需要 3 个输入:
- 端点:数据表的 URL
- 方法:与端点使用的交互方法
- 授权:针对API系统的授权方式。
当您查看Pokemon 表时,您将看到有关端点和方法的以下信息:
在图片中,你可以看到方法是GET。端点是https://pokeapi.co/api/v2/pokemon
后半部分{id or name}
,称为路径参数。路径参数可以是必需的,也可以是可选的。对于 Poke API,它是可选的。你怎么知道的?它在资源列表/分页部分中提到。(调用任何没有资源 ID 或名称的 API 端点将……)
我们需要的最后一个输入是授权。像这样的公共 API 意味着任何人都可以在未经授权的情况下使用它。因此授权方法是 No Auth。
总而言之,以下是我们将用来从 Pokemon 表中获取数据的输入:
- 端点:https://pokeapi.co/api/v2/pokemon
- 方法:GET
- 授权:无授权
2.3)将输入导入 Postman
在 Postman 新建的无标题请求中,输入端点并选择 GET 方法
切换到“授权”选项卡并确保选择“无授权”(请参阅术语部分中的更多授权类型)
点击发送按钮发送 API 请求。当状态代码返回 200 OK 时,表示您已发出正确的 API 请求,并且已返回数据。请参阅状态代码术语部分以了解有关常见状态代码的更多信息。
2.4)高级——路径参数
路径参数定义在3.2.2 节中提到。路径参数通常用于获取单个对象的详细信息。
例如,您想要获取有关特定 Pokemon(如 Pikachu)的详细信息。您可以使用“pikachu”作为路径参数并插入到端点中。
要查看有关皮卡丘的具体详细信息,我们的 API 请求的输入是:
- 端点:https://pokeapi.co/api/v2/pokemon/pikachu
- 方法:GET
- 授权:无授权
让我们在 Postman 中编辑端点并点击发送
返回的数据是有关皮卡丘的详细信息。因此,使用路径参数,您已检索有关皮卡丘的数据。
2.5)高级——查询参数
API 可以提供一种方法来过滤、排序和限制返回的数据。该方法通常是通过查询参数来实现的。有些文档将查询参数仅称为参数。因此,很容易将查询参数与路径参数混淆。
对于 Poke API,只有几个查询参数。其中一个允许 API 请求限制返回的记录数。它在资源列表/分页部分中描述。
根据描述,您可以添加一个名为“limit”的查询参数和我们想要的记录数,API 将仅返回指定数量的记录。例如,您想获取 Pokemon 表上的前 2 个 pokemon。那么我们的 API 请求的输入将是:
- 端点:https://pokeapi.co/api/v2/pokemon
- 方法:GET
- 授权:无授权
- 查询参数:limit : 2
在 Postman 的 Params 选项卡中输入查询参数。Postman 会自动将这些参数输入到 Endpoint 中。点击发送。
如果您不使用查询参数,返回的数据将仅显示 2 个神奇宝贝,而不是 20 个。您已成功限制返回的数据。
下一步该去哪儿?
如果您已按照上述说明操作,那么恭喜您,您知道如何使用 GET 方法发出 API 请求。接下来,您可以练习:
- POST 方法
- 术语部分列出的其他类型的授权。
术语
- Host:调用 API 的服务器地址。可以是 IP 地址,也可以是网络域名。示例 1:https://pokeapi.co/api/v2;示例 2:https://192.168.11.1
- Resource:API Endpoint 中 Host 后面的部分,用于指向数据表。例如:pokemon
- Path 参数: API Endpoint 中 Resource 后面的部分,用于指向数据表中的具体对象。例如:pikachu
- Endpoint:发送 API 请求的完整地址。Endpoint = Host + Resource + Path 参数。例如:https://pokeapi.co/api/v2/pokemon/pikachu
- 方法:使用 API 进行交互的方式。两种最常见的方法是 GET 和 POST。GET 主要用于提取软件上的数据。POST 主要用于编辑/创建新的软件数据
- 查询参数:提供一种过滤/排序/限制数据的方法。以键值形式输入查询参数。
授权:某些 API 可能需要登录/访问令牌才能发出 API 请求。这称为授权。授权的一些形式包括:
- 无需授权:无需授权。适用于 Poke API 等公共 API
- Bearer:您将获得一串称为 access_token 的字符串来使用 API。发送之前,请在 API 请求中提供此 access_token。
- 基本:您将获得一个用户名和密码。发送前在 API 请求中提供这些信息。
- OAuth2:目前市面上最复杂、最安全的授权方式,如遇到此方式,请向官方寻求帮助。
状态代码:一个 3 位数字,用于指示请求结果。最常见的状态代码是:
- 200:OK — API 请求成功
- 401:未授权 — 授权中提供的信息有问题 > 请再次检查您的授权
- 404:未找到 — 找不到指定的数据表(资源)> 再次检查您的端点
原文链接:https://medium.com/refined-and-refactored/how-to-make-basic-api-requests-with-postman-33ce912876ad