Skip to contents

Reads from a web service that publishes an operation called get_points which takes a parameter n and returns n data points in CSV or json format. The request is retried with httr::RETRY() if it fails the first time.

Usage

DSD_ReadWebService(url, verbose = FALSE, ...)

Arguments

url

endpoint URI address in the format http://host:port/<optional_path>.

verbose

logical; display connection information.

...

further arguments are passed on to httr::RETRY(). Pass httr::verbose() as parameter config to get detailed connection info.

Value

A stream::DSD object.

Examples

if (has_localhost_server(port = 8000)) {
  # find a free port
  port <- httpuv::randomPort()
  port

  # create a background DSD process sending data to the port
  rp1 <- publish_DSD_via_WebService("DSD_Gaussians(k = 3, d = 3)", port = port)

  ## use json for the transport layer instead of csv
  # rp1 <- publish_DSD_via_WebService("DSD_Gaussians(k = 3, d = 3)",
  #              port = port, serialize = "json")
  rp1

  # create a DSD that connects to the web service
  dsd <- DSD_ReadWebService(paste0("http://localhost", ":", port))
  dsd

  get_points(dsd, n = 10)

  plot(dsd)

  # end the DSD process. Note: that closing the connection above
  # may already kill the process.
  rp1$kill()
  rp1
} else {
  message("localhost not available, example skipped.")
}

#> PROCESS 'R', finished.