使用rCURL进行API身份验证

时间:2016-10-10 11:25:47

标签: 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]'

由于 佩迪

1 个答案:

答案 0 :(得分:3)

curlconverter包是为此量身定制的。

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

library(curlconverter)

flat <- straighten()

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

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

这会列出您可以传递到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(无parens)来查看该来源。

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

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