Description Usage Arguments Details Value See Also Examples
Use a plumber Microservice in an R Project
1 | use_microservice(path = ".", overwrite = FALSE)
|
path |
( |
overwrite |
( |
Given a path to a folder
When use_microservice(path = ".") is called
Then the function creates the following files:
tests/testthat/test-endpoint-plumber-utility.R inst/configurations/plumber.yml inst/endpoints/plumber-utility.R inst/entrypoints/plumber-background.R inst/entrypoints/plumber-foreground.R
And updates the following files:
tests/testthat/helpers-xyz.R
And adds the following packages to the DESCRIPTION file:
| type | package | version |
| Suggests | config | * |
| Suggests | httptest | * |
| Suggests | httr | * |
| Imports | jsonlite | * |
| Suggests | pkgload | * |
| Suggests | plumber | >= 1.0.0 |
| Imports | purrr | * |
| Suggests | testthat | * |
| Suggests | usethis | * |
| Suggests | promises | * |
| Suggests | future | * |
plumberA Single user/machine applications.
Scheduled tasks. For example, you could use AirFlow with HTTP Operators to automate processes.
plumber AdvantagesComes with familiar way to document the microservice endpoint.
Maturing package that comes with documentation, examples and support.
plumber DisadvantagesRuns on a single thread. That means that parallel algorithms such as random forest, can only be run on one core.
Serves only one caller at a time.
Can’t make inward calls for other services, That means plumber can’t
be
re-entrant.
For example, if a microservice has three endpoints,read_table,
write_table, and orchestrator, where the orchestrator reads a
data table, transforms it, and writes it back, then the
orchestrator can’t make inwards calls via HTTP to read_table and
write_table.
Note: While plumber is single-threaded by nature, it is possible
to perform parallel execution using the promises package. See links
under References.
Deploy the Microservice infrastructure
microservices::use_microservice(path = ".") remotes::install_deps() devtools::document()
Spin-up the microservice by running
source("./inst/entrypoints/plumber-background.R")
Run the microservice unit-test by pressing Ctrl+Shift+T on Windows
Congratulations! You have added a microservice to your application and tested that it works.
No return value, called for side effects.
Other microservice utilities:
add_service()
1 2 3 4 5 6 7 | path <- tempfile()
use_microservice(path)
list.files(path, recursive = TRUE)
cat(read.dcf(file.path(path, "DESCRIPTION"), "Imports"))
cat(read.dcf(file.path(path, "DESCRIPTION"), "Suggests"))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.