/blackgate

Blackgate is an API gateway application

Primary LanguagePythonMIT LicenseMIT

Blackgate

Blackgate is an API gateway application. It's stateless and extendable.

https://travis-ci.org/soasme/blackgate.svg?branch=master

Install via pip

Run:

$ pip install blackgate

Or:

$ git clone git@github.com:soasme/blackgate.git
$ cd blackgate
$ python setup.py install

Install via docker

Run:

$ docker pull soasme/blackgate

Example

Configure Upstream

A minimal Blackgate config looks something like this:

---
proxies:
  - name: github
    upstream_url: 'https://api.github.com'
    request_path_regex: /github/(.*)
    request_path_sub: /\1

Just save it as blackgate.yml.

Run Application

Run application:

$ blackgate -c ./blackgate.yml --no-daemon start

# or run as a daemon
$ blackgate -c ./blackgate.yml --pidfile=/tmp/blackgate.pid start

# or run via docker
$ docker run -it --rm --name blackgate \
    -p 9654:9654 \
    -v `pwd`:/etc/blackgate/blackgate.yml blackgate:latest

Test Blackgate

Using curl to test functionality:

$ curl http://127.0.0.1:9654/github/repos/soasme/blackgate
{"id":59739087,"name":"blackgate","full_name":"soasme/blackgate", ...