将 R 作为带有参数的 Web 服务调用并加载 JSON?
Calling R as a web service with parameters and load a JSON?
我是 R
的新手。我想要做的是能够从另一个应用程序 (Java) 加载一个 URL,它将 运行 一个 R
脚本并输出一个 JSON
所以我的应用程序可以使用它。
我知道有一些像 shiny
这样的框架充当 R 的 Web 服务器,但我找不到关于这些框架的文档,说明如何通过 URL 传递参数,因此 R 可以使用它们。
理想情况下,我需要调用一个 URL,例如:
http://127.0.0.1/R/param1/param2
并且 URL 将调用一个 R 脚本,该脚本将使用 param1
和 param2
来执行一些功能,而 return 我将使用 JSON
然后从我的应用程序中读取。
你有一些选择,恕我直言 OpenCPU 是个不错的选择。
这是实现 Web 服务器以将 R 计算作为 REST 服务提供的最简单的开源方式。
OpenCPU 的创建者与 jsonlite package, and you can easily get and pass json parameters with OpenCPU, as you can see here 的作者相同。
如果您还没有这样做,请查看 [DeployR]。您也可以 post 问题到 DeployR Google 组 寻求帮助。
为了完整披露,我是 DeployR
的作者之一
概览
DeployR 是一种集成技术,用于在 Web、桌面、移动和仪表板应用程序以及后端系统中部署 R 分析。 DeployR 将您的 R 脚本转换为分析 Web 服务,因此 R 代码可以由安全服务器上的应用程序 运行 轻松执行。
使用分析 Web 服务,DeployR 还解决了那些在现有 IT 基础架构中采用基于 R 的分析所面临的关键集成问题。这些服务使应用程序开发人员可以轻松地与数据科学家协作,将 R 分析集成到他们的应用程序中,而无需任何 R 编程知识。
DeployR 有两个版本:DeployR Open 和 DeployR Enterprise。 DeployR Open 是一个免费的开源解决方案,非常适合原型设计、构建和部署非关键业务应用程序。
DeployR Enterprise 可扩展业务关键型应用程序并提供对生产级工作负载的支持,以及与单点登录 (SSO)、轻量级目录访问等流行的企业安全解决方案的无缝集成协议 (LDAP)、Active Directory 或可插入身份验证模块 (PAM)。
I am pretty new with R
知府。 DeployR 适用于数据科学家以及可能不了解 R 的应用程序开发人员。
What I am trying to do is to be able to load a URL from another application
(Java) which will run an R script and output a JSON so my application can work with it.
DeployR 做得很好。帮助您的应用程序之间的通信
和 DeployR 服务器(将执行您的 R)有 DeployR Client libraries.
根据您的需要,DeployR 在以下方面具有开箱即用的 'client library' 支持:
- Java-client-library:
https://github.com/deployr/java-client-library
- .NET-client-library:
https://github.com/deployr/dotnet-client-library
- JavaScript and Node.js-library:
https://github.com/deployr/js-client-library
DeployR 还支持 RBroker Framework
您的用例或运行时是否应该预期大量工作负载或需要定期、计划或批处理。
I understand there are some frameworks like shiny which act as web servers for
R, but I can't find documentation on those frameworks on how to pass parameters
via the URL so R can use them
DeployR 通过其 APIS 充当您的分析引擎。基本上认为它是
将您的 R 脚本变成安全的分析 Web 服务,以便像任何其他服务一样使用
其他网络服务。
传递参数
在 DeployR 中将参数传递给 R 脚本很容易,但是您必须了解您是从非 R 语言将参数传递给 R 脚本。因此,有一些 'Data Encoding'需要完成。例如,将您的 Java 字符串转换为 R character
或将您的 Java 布尔值转换为 R logical
...
DeployR 客户端库或 RBroker 使这变得简单。
听起来你正在使用 Java,所以首先回顾 Java 教程 java-example-client-basics https://github.com/deployr/java-example-rbroker-basics
给你一些上下文,然后检查 java-example-client-data-io https://github.com/deployr/java-example-client-data-io
下的许多 Java 示例。
示例源完全可用,因此应该可以为您提供所需的一切
为了了解如何从您的应用程序到 DeployR 服务器进行基本 I/O 以进行 R 分析。
Ideally I will need to call a URL like:
http://127.0.0.1/R/param1/param2
我建议使用 DeployR 客户端库 进行如上所述的通信,它就是这样做的。
一如既往 post 向 DeployR Google 组 https://groups.google.com/forum/#!forum/deployr
提问寻求帮助。
在 R 中实现 REST API Web 服务的另一种方法是 plumber 包(以前称为 rapier)。它在特殊评论中使用功能装饰方法:
# myfile.R
#* @get /mean
normalMean <- function(samples=10){
data <- rnorm(samples)
mean(data)
}
# service.R
library(plumber)
r <- plumb("myfile.R") # Where 'myfile.R' is the location of the file shown above
r$run(port=8000)
然后调用它:
curl "http://localhost:8000/mean"
我是 R
的新手。我想要做的是能够从另一个应用程序 (Java) 加载一个 URL,它将 运行 一个 R
脚本并输出一个 JSON
所以我的应用程序可以使用它。
我知道有一些像 shiny
这样的框架充当 R 的 Web 服务器,但我找不到关于这些框架的文档,说明如何通过 URL 传递参数,因此 R 可以使用它们。
理想情况下,我需要调用一个 URL,例如:
http://127.0.0.1/R/param1/param2
并且 URL 将调用一个 R 脚本,该脚本将使用 param1
和 param2
来执行一些功能,而 return 我将使用 JSON
然后从我的应用程序中读取。
你有一些选择,恕我直言 OpenCPU 是个不错的选择。
这是实现 Web 服务器以将 R 计算作为 REST 服务提供的最简单的开源方式。
OpenCPU 的创建者与 jsonlite package, and you can easily get and pass json parameters with OpenCPU, as you can see here 的作者相同。
如果您还没有这样做,请查看 [DeployR]。您也可以 post 问题到 DeployR Google 组 寻求帮助。
为了完整披露,我是 DeployR
的作者之一概览
DeployR 是一种集成技术,用于在 Web、桌面、移动和仪表板应用程序以及后端系统中部署 R 分析。 DeployR 将您的 R 脚本转换为分析 Web 服务,因此 R 代码可以由安全服务器上的应用程序 运行 轻松执行。
使用分析 Web 服务,DeployR 还解决了那些在现有 IT 基础架构中采用基于 R 的分析所面临的关键集成问题。这些服务使应用程序开发人员可以轻松地与数据科学家协作,将 R 分析集成到他们的应用程序中,而无需任何 R 编程知识。
DeployR 有两个版本:DeployR Open 和 DeployR Enterprise。 DeployR Open 是一个免费的开源解决方案,非常适合原型设计、构建和部署非关键业务应用程序。 DeployR Enterprise 可扩展业务关键型应用程序并提供对生产级工作负载的支持,以及与单点登录 (SSO)、轻量级目录访问等流行的企业安全解决方案的无缝集成协议 (LDAP)、Active Directory 或可插入身份验证模块 (PAM)。
I am pretty new with R
知府。 DeployR 适用于数据科学家以及可能不了解 R 的应用程序开发人员。
What I am trying to do is to be able to load a URL from another application (Java) which will run an R script and output a JSON so my application can work with it.
DeployR 做得很好。帮助您的应用程序之间的通信 和 DeployR 服务器(将执行您的 R)有 DeployR Client libraries.
根据您的需要,DeployR 在以下方面具有开箱即用的 'client library' 支持:
- Java-client-library:
https://github.com/deployr/java-client-library
- .NET-client-library:
https://github.com/deployr/dotnet-client-library
- JavaScript and Node.js-library:
https://github.com/deployr/js-client-library
DeployR 还支持 RBroker Framework
您的用例或运行时是否应该预期大量工作负载或需要定期、计划或批处理。
I understand there are some frameworks like shiny which act as web servers for R, but I can't find documentation on those frameworks on how to pass parameters via the URL so R can use them
DeployR 通过其 APIS 充当您的分析引擎。基本上认为它是 将您的 R 脚本变成安全的分析 Web 服务,以便像任何其他服务一样使用 其他网络服务。
传递参数
在 DeployR 中将参数传递给 R 脚本很容易,但是您必须了解您是从非 R 语言将参数传递给 R 脚本。因此,有一些 'Data Encoding'需要完成。例如,将您的 Java 字符串转换为 R character
或将您的 Java 布尔值转换为 R logical
...
DeployR 客户端库或 RBroker 使这变得简单。
听起来你正在使用 Java,所以首先回顾 Java 教程 java-example-client-basics https://github.com/deployr/java-example-rbroker-basics
给你一些上下文,然后检查 java-example-client-data-io https://github.com/deployr/java-example-client-data-io
下的许多 Java 示例。
示例源完全可用,因此应该可以为您提供所需的一切
为了了解如何从您的应用程序到 DeployR 服务器进行基本 I/O 以进行 R 分析。
Ideally I will need to call a URL like:
http://127.0.0.1/R/param1/param2
我建议使用 DeployR 客户端库 进行如上所述的通信,它就是这样做的。
一如既往 post 向 DeployR Google 组 https://groups.google.com/forum/#!forum/deployr
提问寻求帮助。
在 R 中实现 REST API Web 服务的另一种方法是 plumber 包(以前称为 rapier)。它在特殊评论中使用功能装饰方法:
# myfile.R
#* @get /mean
normalMean <- function(samples=10){
data <- rnorm(samples)
mean(data)
}
# service.R
library(plumber)
r <- plumb("myfile.R") # Where 'myfile.R' is the location of the file shown above
r$run(port=8000)
然后调用它:
curl "http://localhost:8000/mean"