【发布时间】:2016-10-10 11:25:47
【问题描述】:
我是 R 的超级新手,我尝试通过 R 连接到 Rosette API,我得到了下面的 curl 脚本。我如何将此连接到 R?我得到了我的个人 API 密钥。
curl "https://api.rosette.com/rest/v1/ping" -H 'X-RosetteAPI-Key: [your_api-key]'
谢谢 佩迪
【问题讨论】:
标签: r api authentication rcurl
我是 R 的超级新手,我尝试通过 R 连接到 Rosette API,我得到了下面的 curl 脚本。我如何将此连接到 R?我得到了我的个人 API 密钥。
curl "https://api.rosette.com/rest/v1/ping" -H 'X-RosetteAPI-Key: [your_api-key]'
谢谢 佩迪
【问题讨论】:
标签: r api authentication rcurl
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 调用。它是矢量化的,这就是为什么它返回一个或多个函数的列表而不仅仅是一个函数。
如果您只传入一个对象,那么它还会将生成的函数源复制到剪贴板,您可以将其粘贴回您的 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]"))
它导入/导出%>%,因此可以——在将cURL 命令行复制到剪贴板之后——执行以下操作:
straighten() %>% make_req() -> req
支持cURL 命令行选项的常见子集。如果缺少您需要的,只需file an issue 举例。说到例子,gh repo 有many more usage examples。
【讨论】: