什么是 cURL 以及为什么它遍布 API 文档?

我不知道你的互联网角落是什么样子的,但我的看起来像这样:
“我只想使用 Python,为什么文档告诉我使用 curl。”
“我应该用 curl 做点什么吗?我以前从来没用过它。”
“我在哪里使用 curl?”
“有人能告诉我如何在节点项目中使用 curl 吗?”
我上计算机科学课已经有一段时间了,但即使上课的时候,我也不确定自己有没有被明确地教过什么是 cURL,或者怎么用它。所以,现在就来学习一下吧。
什么是 cURL?
cURL代表客户端 URL,可以写成 curl(因为我比较懒,所以在博客的剩余部分我会这么写)。它是一个使用 URL 语法进行文件传输的命令行工具。它支持多种协议,包括 HTTP、HTTPS、FTP 等等。HTTP/HTTPS 协议使其成为与 API 交互的绝佳选择!
curl 几乎可以在任何平台和现有硬件上使用。这意味着,无论您在何处运行什么,最基本的 curl 命令都能正常工作。绝不会再出现“它在我的机器上无法运行”这样的问题。
在哪里使用 cURL?
您可以在终端或命令提示符中使用 curl,但您需要确保您的系统已经安装了它。
如果你运行的是 10 年前的OS Xcurl --man
,那么你可能已经安装了 curl。你可以在终端中运行以下命令来查看“手册页”或使用手册。

如果您更愿意在浏览器中阅读文档,您也可以选择这样做。
运行的是Windows 系统?根据你运行的版本或下载的软件(例如 Windows 版 Git 和其他开发工具),你可能已经安装了 curl。更多信息,请参阅这篇文章。
在命令提示符中运行,您还可以执行手册页健全性检查curl --man
。
如果你正在运行Linux,我感觉你知道 curl 是什么,而且你可能已经安装了它。😄
如何使用 cURL?
现在我们知道您已经安装了 curl,您可能想知道如何实际使用它。
先来参考一下你最初是怎么找到这里的,比如某人的 API 文档。我会使用IBM Cloud 上的Watson Speech-to-Text,因为我最近在那里花了很多时间,而且我们都是这里的朋友,他们给我的薪水也不错。

一些文档包含各种编程语言的片段,这个也不例外,但第一个是 curl,它可能令人生畏,因为它不是一种编程语言,而且看起来也不像编程语言。

您看到的第一组 curl 命令只是其余命令的示例,以及创建这些命令的公式。如果您不明白,请继续阅读。
我总是尝试找到一个非常简单的“GET”请求,只需要最少的信息(即没有参数),这样我就能知道端点是否正常工作,并且返回的状态码不会表明我做错了什么。这就像一个建立新 API 信任的活动。根据 API 的身份验证要求,我甚至可能会尝试在浏览器中实现这一点,因为那只是一个 GET 请求而已。
查看 Speech-to-Text 中的方法,我发现了“列出模型”,它不需要任何参数,即使我没有模型,也应该会使用基本的“开箱即用”模型进行响应,或者什么也不响应,谁知道呢。太好了,我们就用这个吧。

在文档中我看到了响应应该是什么样子的示例。
要访问我的“语音转文本”服务,我需要我的 API 密钥(如果运行的是旧服务,则需要用户名/密码),可以从“管理”页面获取。我会复制 API 密钥。

在我的终端中,我需要构建一些类似于示例请求的东西:
-X GET -u “apikey:{apikey}” “[https://stream.watsonplatform.net/speech-to-text/api/v1/models](https://stream.watsonplatform.net/speech-to-text/api/v1/models)"
别激动,这个 API 密钥和整个服务已经被删除了。
-X GET -u “apikey:vjCxKq8krmb5IX8LBIm-hNLdJwPC3IBs1Pa1jIl0PnEQ” “https://stream.watsonplatform.net/speech-to-text/api/v1/models"

看来我得到了一些关于每种语言基本模型的信息。太棒了!它不是空的,而且成功了!
这里要特别注意,你的 API 密钥只是一个字符串值。不要把括号留在里面。否则,你会得到一个“未授权”的提示,你会感到非常沮丧/困惑。

答案是正确的,因为您未经授权,因为您的 API 密钥可能在正面和背面没有包含括号。
我为什么要用 cURL 而不是 Postman、ARC 或 <插入我最喜爱的客户端>?
没有人会告诉你什么能用什么不能用,但正如上文所述,curl 的功能相当标准,并且支持多种平台。它没有用户界面,不会让你在执行身份验证等基本命令时感到困惑,而且你可以清楚地看到正在发生的事情。但如果你觉得某个用户界面更舒适、更熟悉,那就去尝试一下吧。
说实话,你甚至不必使用 curl。它只是一个选项而已。就像 Go、Python、Java 等语言中的代码片段一样。
一旦您熟悉了 API,您就可以开始编写使用该 API 的实际代码,据我所知,这可能完全是另一种语言。
无论你做什么,在构建时请告诉我!你使用 curl 吗?你有最喜欢的 API 吗?你有学习新 API 的方法吗?请在下方分享你的技巧和窍门。
链接链接:https://dev.to/ibmdeveloper/what-is-curl-and-why-is-it-all-over-api-docs-9mh