Nothing
## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ---- include = FALSE---------------------------------------------------------
run_bg = function(expr) {
args = c("--vanilla", "-q")
expr_c = deparse(substitute(expr))
expr_c = paste(expr_c, collapse = "\n")
pid = sys::r_background(c(args, "-e", expr_c), std_out = TRUE, std_err = TRUE)
return(pid)
}
## -----------------------------------------------------------------------------
library(RestRserve)
app = Application$new()
## -----------------------------------------------------------------------------
calc_fib = function(n) {
if (n < 0L) stop("n should be >= 0")
if (n == 0L) return(0L)
if (n == 1L || n == 2L) return(1L)
x = rep(1L, n)
for (i in 3L:n) {
x[[i]] = x[[i - 1]] + x[[i - 2]]
}
return(x[[n]])
}
## ---- req_res-----------------------------------------------------------------
fib_handler = function(.req, .res) {
n = as.integer(.req$parameters_query[["n"]])
if (length(n) == 0L || is.na(n)) {
raise(HTTPError$bad_request())
}
.res$set_body(as.character(calc_fib(n)))
.res$set_content_type("text/plain")
}
## -----------------------------------------------------------------------------
app$add_get(path = "/fib", FUN = fib_handler)
## -----------------------------------------------------------------------------
request = Request$new(path = "/fib", parameters_query = list(n = 10))
response = app$process_request(request)
cat("Response status:", response$status)
cat("Response body:", response$body)
## -----------------------------------------------------------------------------
yaml_file = system.file("examples", "openapi", "openapi.yaml", package = "RestRserve")
app$add_openapi(path = "/openapi.yaml", file_path = yaml_file)
app$add_swagger_ui(path = "/doc", path_openapi = "/openapi.yaml", use_cdn = TRUE)
## ----eval = FALSE-------------------------------------------------------------
# backend = BackendRserve$new()
# backend$start(app, http_port = 8080)
## ----echo = FALSE, eval = FALSE-----------------------------------------------
# pid = run_bg({
# library(RestRserve)
# calc_fib = function(n) {
# if (n < 0L) stop("n should be >= 0")
# if (n == 0L) return(0L)
# if (n == 1L || n == 2L) return(1L)
# x = rep(1L, n)
# for (i in 3L:n) x[[i]] = x[[i - 1]] + x[[i - 2]]
# x[[n]]
# }
#
# fib_handler = function(.req, .res) {
# n = as.integer(.req$parameters_query[["n"]])
# if (length(n) == 0L || is.na(n)) {
# raise(HTTPError$bad_request())
# }
# .res$set_body(as.character(calc_fib(n)))
# .res$set_content_type("text/plain")
# }
#
# app = RestRserve::Application$new()
# app$add_get(path = "/fib", FUN = fib_handler)
# yaml_file = system.file("examples", "openapi", "openapi.yaml", package = "RestRserve")
# app$add_openapi(path = "/openapi.yaml", file_path = yaml_file)
# app$add_swagger_ui(path = "/doc", path_openapi = "/openapi.yaml", use_cdn = TRUE)
# backend = BackendRserve$new()
# backend$start(app, http_port = 8080)
# })
# tools::pskill(pid)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.