https://github.com/timoschd/Dockerized-Plumber-API
Containerized Plumber REST API which offers data from a containerized Cron job on a Google Big Query data source within a container network.
https://github.com/timoschd/Dockerized-Plumber-API
Last synced: 4 months ago
JSON representation
Containerized Plumber REST API which offers data from a containerized Cron job on a Google Big Query data source within a container network.
- Host: GitHub
- URL: https://github.com/timoschd/Dockerized-Plumber-API
- Owner: timoschd
- Created: 2019-12-14T15:11:14.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-16T17:05:54.000Z (almost 5 years ago)
- Last Synced: 2024-06-05T02:31:57.199Z (10 months ago)
- Language: R
- Size: 73.2 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- jimsghstars - timoschd/Dockerized-Plumber-API - Containerized Plumber REST API which offers data from a containerized Cron job on a Google Big Query data source within a container network. (R)
README
This project is described in detail in the corresponding blog post series:
**Part I:** https://medium.com/analytics-vidhya/google-big-query-with-r-875facef7844
**Part II:** https://medium.com/analytics-vidhya/live-data-extraction-with-cron-and-r-f29324bf153e
**Part III:** https://medium.com/analytics-vidhya/easy-api-building-for-data-scientists-with-r-673b381c4ae1# Dockerized Plumber API
These REST APIs provide a way for platform/language independent access to the public Google Big Query dataset `bigquery-public-data:openaq.global_air_quality` of air pollution measured soley at Indian measurement points. The dataset is updated daily, however older data seem to get deleted. To access this data a Cron job fetches new data in 12 hour intervals from Google through the R script `get_data_big_query.R` and adds new rows to the saved dataset. The data can be requested fully or aggregated on date intervals through the APIs provided in the Rscript `API.R`. The data import via Cron and the APIs are run seperately in two Docker containers with a shared volume for the data as specified in the `docker-compose.yml`.
The APIs for Cloud Storage and Big Query have to be activated first for the used Google account at https://console.cloud.google.com/ and a Service Account Token (here not included, should go in cron/src/) needs to be generated and downloaded for authentification as described in section "Service account token" at https://gargle.r-lib.org/articles/get-api-credentials.html. For information about the r package `bigrquery` see https://github.com/r-dbi/bigrquery.## API Documentation:
- Get complete data from all Indian measurement points
POST */all
NO parameters
content-type: application/json- Get all Indian measurement locations
POST */locations
NO parameters
content-type: application/json- Get median airquality metrics of the current date with date horizon for averaging at measurement location.
POST */summed_quality_now?measurment_location=&date=
measurment_location: Takes all values from the Indian measurement locations, defaults to all
date: The daterange, takes either today, week, month, quarter, year, defaults to today
content-type: application/json
- Get median air quality for all dates. The timerange for averaging and the measurement location can be set.
POST */summed_quality?measurment_location=&date=
measurment_location: Takes all values from the Indian measurement locations, defaults to all
date: The daterange, takes either day, week, month, quarter, year, defaults to day
content-type: application/json- Plot a test histogram
GET */plot
NO parameters
content-type: application/json