API 使用 rCURL 进行身份验证

API authentication using rCURL

我是 R 的超级新手,我尝试通过 R 连接到 Rosette API,我得到了下面的 curl 脚本。我如何将其连接到 R?我得到了我的个人 API 密钥。

curl "https://api.rosette.com/rest/v1/ping" -H 'X-RosetteAPI-Key: [your_api-key]'

谢谢 佩迪

curlconverter 包是为此量身定做的。

您可以使用 cURL 命令行并将其复制到剪贴板或直接传入。如果将其复制到剪贴板,则调用 straighten() 时不带参数:

library(curlconverter)

flat <- straighten()

否则,您可以将其作为字符串传入:

flat <- straighten("curl 'https://api.rosette.com/rest/v1/ping' -H 'X-RosetteAPI-Key: [your_api-key]'")

这列出了所有 URL 部分,然后您可以将其传递给 make_req():

req <- make_req(flat)[[1]]

make_req() 将该列表变成功能齐全的 httr 调用。它是矢量化的,这就是为什么它 returns 一个或多个函数的列表而不是一个函数。

如果您只传入一个对象,那么它还会将生成的函数源复制到剪贴板,您可以将其粘贴回 IDE。这个生成:

httr::VERB(verb = "GET", url = "https://api.rosette.com/rest/v1/ping", 
    httr::add_headers(`X-RosetteAPI-Key` = "[your_api-key]"))

请注意,您也可以通过在 R 控制台输入 req(无括号)来查看该来源。

我通常会检查输出并使其更紧凑:

GET(url = "https://api.rosette.com/rest/v1/ping", 
    add_headers(`X-RosetteAPI-Key` = "[your_api-key]"))

它 imports/exports %>% 所以可以 — 在将 cURL 命令行复制到剪贴板之后 — 做:

straighten() %>% make_req() -> req

支持 cURL 命令行选项的通用子集。如果缺少您需要的,只需 file an issue with an example. Speaking of examples, there are many more usage examples 在 gh 存储库中即可。