A collection of data APIs for the University of Toronto.
Please feel free to submit a pull request to add your own API wrapper to this list!
Please consult the configuration section on what environment variables to set.
Deployment via Docker Hub images (recommended)
You can pull Nikel API's prebuilt Docker images from Docker Hub.
- Pull the latest image from Docker Hub:
docker pull nikelapi/nikel
- Run image (you can tweak variables accordingly)
docker run --publish 8080:8080 --detach --name nikel-core nikelapi/nikel:latest
Deployment via Docker compose
Make sure your docker version supports the docker-compose version displayed in the
docker-compose up -d
Nikel should work on any 32/64 bit system with go installed (version 1.13+ is required).
- git clone
git clone https://github.com/nikel-api/nikel.git
- cd into nikel
- Update submodules
git submodule update --init
- cd into nikel-core
- Build nikel-core
- Run nikel-core
./nikel-core (add .exe suffix if on Windows)
- By default, nikel-core should be listening and serving on port 8080. To change the port, modify the
- To suppress debug logs, add the environment variable
GIN_MODEwith the value
- To add optional rate limiting, add the environment variable
RATE_LIMITwith a positive integer value representing the number of reqs/s.
- To add optional disk backed cache (using LevelDB), add the environment variable
CACHE_EXPIRYwith a positive integer value representing the number of seconds to expire.
For contributing, there are a few things to look out for:
go fmt github.com/nikel-api/nikel/...to format code.
- Consult the article Godoc: documenting Go code on how to write comments if you aren't sure.
go test github.com/nikel-api/nikel/... -vto run all tests.
- Please try to make a few tests to test code changes (not required, but is always good).
If you find any inconsistencies or parts of code that can be reworked, any pull requests are greatly appreciated.