我使用Posit Connect API密钥向托管在Posit Connect上的R Plumber API发出请求以进行身份验证.接口返回Sys.getenv()["RStudio_USER_IDENTITY"]的值为空.我希望收到RStudio_USER_IDENTITY的值,因为API密钥链接到特定的用户帐户.

为什么使用Posit Connect API密钥连接到Posit Connect上托管的R Plber API时,Sys.getenv()["RStudio_USER_Identity"]为空?

是否存在解决方法来找出哪个用户帐户链接到用于API请求的API密钥?

示例R管道工API:

library(plumber)

#* @get /exampleapi
information <- function(req, res, session) {
  return(Sys.getenv()["RSTUDIO_USER_IDENTITY"][[1]])
}

谢谢你的建议!

推荐答案

我们可以让水管工告诉我们它看到了什么:-)

#* Retrieve client data visible to the app
#*
#* @get /clientdata
function(req, res) {
  list(
    req = capture.output(str(mget(setdiff(names(req), "pr"), envir = req))),
    res = capture.output(str(res)),
    env = capture.output(Sys.getenv())
  )
}

访问该API(在您的Connect实例中)并试用:

enter image description here

请注意,在req列表中,您将在似乎是json字符串的内容中找到我的用户名bevans.

也可在gist.

我最初在https://dzone.com/articles/my-5-tips-for-better-restapi-design找到了这个或它的提示,尽管该链接现在是登录墙,不确定它是否仍然有效.

R相关问答推荐

将带有范围的字符串转换为R中的数字载体

从R中的另一个包扩展S3类的正确方法是什么

检测(并替换)字符串中的数学符号

在R中列表的结尾添加数字载体

如何 bootstrap glm回归、估计95%置信区间并绘制它?

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

如何使用`ggplot2::geom_segment()`或`ggspatial::geom_spatial_segment()`来处理不在格林威治中心的sf对象?

r—绘制相交曲线

S用事件解决物质平衡问题

移除仪表板Quarto中顶盖和车身之间的白色区域

为什么我的基准测试会随着样本量的增加而出现一些波动?

Select 季度月值

如何从容器函数中提取conf并添加到ggplot2中?

具有重复元素的维恩图

将标识符赋给事件序列,避免错误观察

从多个可选列中选取一个值到一个新列中

观察器中的inaliateLater的位置

将y轴格式更改为R中的百分比

在R中,有没有什么方法可以根据一列中的多个值来过滤行?

使用nls()函数的非线性模型的半正态图