dwapi quickstart

NOT_CRAN <- identical(tolower(Sys.getenv("NOT_CRAN")), "true")
CONFIGURED <- Sys.getenv("DW_AUTH_TOKEN", unset = "") != ""
knitr::opts_chunk$set(
  collapse = FALSE,
  comment = "##",
  purl = NOT_CRAN & CONFIGURED,
  eval = NOT_CRAN & CONFIGURED
)

Configuration

Make sure to configure the library at the begining of every new R session. To do so, invoke dwapi::configure() passing the data.world authentication token obtained at https://data.world/settings/advanced

DO NOT SHARE YOUR AUTHENTICATION TOKEN

For your security, do not include your API authentication token in code that is intended to be shared with others.

Call this function via console, always when possible.

If you must call it in code do not include the actual API token. Instead, pass the token via a variable in .Renviron, and do not share your .Renviron file. For example:

dwapi::configure(auth_token = Sys.getenv("DW_AUTH_TOKEN"))

Creating datasets and updating datasets

Use dwapi::create_dataset() to create a new dataset. The library includes number of constructor functions to facilitate the praparation of complex requests like this. The example here is dwapi::dataset_create_request().

create_cars_dataset <- dwapi::dataset_create_request(
  title = sprintf("My cars dataset %s", runif(1)),
  visibility = "PRIVATE",
  license_string = "Other"
)

cars_dataset <- dwapi::create_dataset(Sys.getenv("DW_USER"), create_cars_dataset)
cars_dataset

Additional information can be added over time, with dataset updates.

update_cars_dataset <- dwapi::dataset_update_request(
  description = "This is a dataset created from R's cars dataset."
)

dwapi::update_dataset(cars_dataset$uri, update_cars_dataset)

Uploading files

Files can be added via URL, from the local file system, or directly as a data frame.

upload_response <- dwapi::upload_data_frame(cars_dataset$uri, cars, "cars.csv")
Sys.sleep(10) # Files are processed asyncronously.
upload_response

Queries

Datasets can be queried using SQL and SPARQL. Once again, it's important to keep the concept of tables and their names in mind.

sql_query <- "SELECT * FROM cars"
dwapi::sql(cars_dataset$uri, sql_query)
dwapi::delete_dataset(cars_dataset$uri)

Next

These are simple examples of the power of data.world's REST API and of how this library make using it convenient. To learn more, review the complete documentation, starting with ?dwapi.



Try the dwapi package in your browser

Any scripts or data that you put into this service are public.

dwapi documentation built on May 1, 2019, 11:18 p.m.