README.md

CRAN_Status_Badge Travis-CI Build Status Coverage Status

srlst

Serialzing lists into text-lists can make it easier to work with web-service APIs. This package can help you work with http-query lists in the "R world", helping you serialize it for use in the "remote world". In many cases, parameters for http queries are formatted differently from R:

The goal of this package is to make that translation process easier.

Installation

You can install srlst from github with:

# install.packages("devtools")
devtools::install_github("ijlyttle/srlst")

Example

library("httr")
library("lubridate")
library("srlst")

Let's consider a web-serice endpoint that accepts query-parameters in the format described above. You wish to work with the query-parameters in an R-sensible way. The function serialize_list() is used to serialize the elements of your list into the format expected by the web-service.

query_params <- list(
  delay = dseconds(3),
  print = TRUE,
  next_steps = c("collate", "send"),
  number = 20
)

serialize_list(query_params)
#> $delay
#> [1] "3000"
#> 
#> $print
#> [1] "true"
#> 
#> $next_steps
#> [1] "collate,send"
#> 
#> $number
#> [1] "20"

Thus, you can use the httr package to build your URL, attaching the query.

url <- parse_url("https://useful.site.com/service")
url$query <- serialize_list(query_params)

build_url(url)
#> [1] "https://useful.site.com/service?delay=3000&print=true&next_steps=collate%2Csend&number=20"

If you need to change the default behavior of the serializer, the serialize_list() function lets you set the delimiter. It also lets you set the locale(), which is used to specify the format for individual types (like logical and time-difference).

There are other situations where list-serialization may be useful. For example if you are writing HTML elements for use with JavaScript, you will often have to set parameters like data-foo = "true". You can use serialize_list() to help you think in the R world, then write to the HTML/JavaScript world.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.



ijlyttle/srlze documentation built on May 17, 2017, 3:16 a.m.