什么是 cURL,它与 API 有什么关系?

cURL即clientURL,代表客户端 URL,是一个命令行工具,开发人员使用它来与服务器进行数据交互。例如:最常见的就是通过cURL向指定服务器url地址发送数据。cURL 支持多种不同的协议,包括 HTTP 和 HTTPS,并且可以在不同的操作系统平台上执行。你只需要有一台带网络连接、可以运行命令行的终端即可运行curl命令。

curl 最基本的用法格式是:curl http://example.com. 即curl命令后跟 URL,它将返回 example.com的html源代码。

curl有什么用途?

  • 它具有高度的可移植性,可以兼容几乎所有操作系统和连接设备。
  • 非常方便用来测试终端设备以检查它们是否正常工作。
  • 它可以提供详细的调试信息,例如提供已发送/接收的数据的详细信息。

发送 API 请求

我们可以使用 curl 发送 API 请求。每个请求通常由四个主要部分组成:

  • 一个端点,它是我们发送请求的url地址。
  • HTTP方法。最常用的方法是 GET、POST、PUT 和 DELETE。

    • GET用于从服务器检索资源。这可以是文件、数据或图像。
    • POST用于向服务器发送数据。
    • PUT可用于创建或更新资源。这可用于创建或更新数据库中的记录或文件的内容。
    • DELETE用于删除资源,例如数据库记录。
  • Headers,其中包含有关请求的元数据,例如内容类型、用户代理等。
  • Body,它是消息体,包含我们要发送的数据。通常,与 POST 和 PUT 方法一起使用。

curl 命令选项

有超过两百种curl选项。您可以通过在命令行执行`curl -h来查看帮助文档。最常用的命令选项包括:

  • -I仅返回 HTTPS Header头

    curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=&date=2020-01-01' -I

    此命令将返回 headers 头,例如日期、内容类型等

    仅显示 HTTPS 标头的 curl 命令结果的屏幕截图

  • -v是详情选项

    curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01' -v

    此命令将显示运行 curl 命令时发生的所有细节,包括连接信息、headers头以及返回的所有数据。在这里,我们还获得了请求返回的图像的描述以及图像 url。

    什么是 cURL,它与 API 有什么关系?_第1张图片

  • -o将输出存储在文件中

    curl --request GET 'https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01' --output curloutput

将 curl 与其他 CLI 命令结合使用

您可以将其它命令的输出用作 curl 命令的输入,或者反过来。

例如,您可以使用 curl 和 grep 查看网页是否包含特定文本。

下面是一个使用 curl 请求 NASA API ,并利用python3从请求返回的数据中提取图像链接,并将其显示在预览程序中的示例:

curl --request GET "https://api.nasa.gov/planetary/apod?api_key=$NASA_API_KEY&date=2020-01-01" -s | python3 -c "import sys, json; print(json.load(sys.stdin)['url'])" | xargs curl -o NASApicture.jpg && open -a Preview NASApicture.jpg

在这个例子中,我们使用 curl 向 Nasa API 发出 GET 请求,这将返回 json 数据,我们在一个 Python 脚本片段中从返回的json数据中提取图像的 url。然后我们使用 curl 命令获取图像并使用 Mac 上的 Preview 图片预览程序打开它。

什么是 cURL,它与 API 有什么关系?_第2张图片

进行 API 调用的其它有用工具

您不必非要使用命令行curl来发出 API 请求。您也可以使用其它多种不同的工具来进行 API 交互,例如 HTTPie、Postman 和 Rest Client。

HTTPie

HTTPie 是一个命令行 HTTP 客户端,对用户友好的操作界面是它的一大特点。你可以直接下载其在线版本,非常整洁。

Postman

Postman是一个基于 UI 的客户端,用于与 API 开发相关的所有事情,它可以说是最受欢迎的客户端之一。

您可以在 Postman 中生成和执行curl命令。要生成curl命令,可以输入请求 的URL地址 和请求参数,然后点击右侧的代码选项:

什么是 cURL,它与 API 有什么关系?_第3张图片

将显示一个框, 选择curl就可以查看生成的curl命令。

什么是 cURL,它与 API 有什么关系?_第4张图片

Postman 为您提供了您已构建的所有请求的历史记录,甚至对它们按照日期进行了标记。

什么是 cURL,它与 API 有什么关系?_第5张图片

VS Code 中的Rest Client客户端

Rest Client for VS Code 可能是我最喜欢的执行curl命令的工具之一。它是轻量级的,并且有很好的语法高亮显示。这是一个非常有用的vs code 插件,方便你在 VS Code 中快速执行一些curl请求。

您只需输入您的 curl 命令,上面就会出现“发送请求”选项。

VS Code 中 curl 命令请求的屏幕截图

单击发送请求后,将打开另一个选项卡,其中包含响应。

总结和后续步骤

本文中介绍了基本curl命令及其最有用的选项。我们还介绍了可帮助您开始使用 cURL 的工具软件。现在您可以开始使用 cURL 来测试您的端点并对您的应用程序进行故障排除。

你可能感兴趣的:(postmancurlapi)