A REST API for the US COVID-19 data gathered by nytimes.
hub.docker.com/repository/docker/desholmes/covid-19-us-api.
- Registry: desholmes
- Repository name: covid-19-us-api
- Current version: 1.0.5
A hosted version version of the API can be found at covid-19-us-api.dholmes.co.uk.
The following starts a local server running on port 8000:
docker run -it -p 8000:8000 desholmes/covid-19-us-api:1.0.0
URL | Description | Hosted Link | Local Link |
---|---|---|---|
/us/counties/ | Returns county-level data: date, county, state, fips, cases, deaths | hosted | local |
/us/counties/?date=2020-03-20 | Returns county-level data for a date : date, county, state, fips, cases, deaths |
hosted | local |
/us/states/ | Returns state-level data: date, county, state, fips, cases, deaths | hosted | local |
/us/states/?date=2020-03-20 | Returns state-level data for a date : date, county, state, fips, cases, deaths |
hosted | local |
- Installation of Docker CE
- Installation of git SCM
- Knowledge of Python 3.7.3
- Knowledge of Django 3.0.4
- Knowledge of Django REST framework 3.11.0
Development takes place inside a docker container to:
- Remove the need for a local virtual environment
- Ensure the DEV environment is a close as possible to PROD
- Complete the 'Getting Started > Prerequisites' section
- By default the app is configure for local development. Running
make build-cold
stand your local env up from scratch (not to be used for PROD) - Open 0.0.0.0:8000 in a browser to see the app running
- Changing files in
covid_19_us
will cause the app to reload - Press
CTL+c
to stop the docker container
If you want to configure the application step-by-step follow the steps below:
- Run
make setup
: To create the.env
file from.env-dist
- Configure the following in
.env
:- PORT: The port the Django server will be exposed on (default 8000)
- DEBUG: Enable the app to run in development mode using
python3 manage.py runserver
, with live reloading of files changed incovid_19_us
(default 1) - DEV: Enables DEBUG for the app (default 1)
- QA: Enables flake8 to be run against code on initial run, not live reload (default 1)
- SECRET_KEY: Secret key for the app, replace
add_me
with a random string (default 'add_me')
- Run
make build
: To create the docker image - Run
make run
: To run the docker image as a container - Open 0.0.0.0:8000 in a browser to see the app running
- The 2 above commands can be run using
make build-run
- Press CTL+c to stop the docker container
- nytimes for providing the data
- Xavier Ordoquy (xordoquy) and his demo code for creating a non-model Django REST API
- Valentino Gagliardi's middleware blog post
1.0.5
: Hotfix to handle query string for GA tracking1.0.4
: Adding GA tracking to monitor hosted API usage1.0.3
: Adding GNU GENERAL PUBLIC V3 LICENSE and CORS Allow all headers1.0.2
: Added caching for response dataframes1.0.1
: Added a hosted public version of the API1.0.0
: Base repo with DBless Django app