knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)

CRAN_Status_Badge Travis-CI Build Status Coverage Status

srlze

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 srlze from github with:

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

Example

library("httr")
library("lubridate")
library("srlze")

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)

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)

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 18, 2019, 3:42 a.m.