library(httpuv)
library(promises)
library(testthat)
content <- list(
status = 200L,
headers = list(
'Content-Type' = 'text/html'
),
body = "abc"
)
app_handle <- startServer("0.0.0.0", app_port,
list(
onHeaders = function(req) {
if (req$PATH_INFO == "/header") {
content$body <- "this is a response from onHeaders()\n"
return(content)
} else if (req$PATH_INFO == "/header-delay") {
print(capture.output(print(str(as.list(req)))))
Sys.sleep(5)
return(content)
} else if (req$PATH_INFO == "/header-print") {
print(capture.output(print(str(as.list(req)))))
return(content)
} else if (req$PATH_INFO == "/header-error") {
stop("Error in app (header)")
} else {
return(NULL)
}
},
call = function(req) {
if (req$PATH_INFO %in% c("/", "/sync")) {
return(content)
} else if (req$PATH_INFO == "/body-error") {
return(content)
} else if (req$PATH_INFO == "/sync-delay") {
Sys.sleep(5)
return(content)
} else if (req$PATH_INFO == "/sync-error") {
stop("Error in app (sync)")
} else if (req$PATH_INFO == "/async") {
promise(function(resolve, reject) {
resolve(content)
})
} else if (req$PATH_INFO == "/async-delay") {
promise(function(resolve, reject) {
Sys.sleep(5)
resolve(content)
})
} else if (req$PATH_INFO == "/async-error") {
promise(function(resolve, reject) {
stop("Error in app (async)")
})
} else {
stop("Unknown request path:", req$PATH_INFO)
}
},
staticPaths = list(
"/static" = test_path("apps/content"),
"/static_fallthrough" = staticPath(
test_path("apps/content"),
fallthrough = TRUE
)
)
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.