A free, locally hosted API management solution. A proxy for your api, statistics for your api & a powerful api of its own.
There are three components which make up the Api Axle system:
$ npm install apiaxle-proxy
This is the aspect of the system which does the actual proxying. It sits in front of your API and does the authentication, key checking, queries per day/second checking. This is the bit you want if you want anything. More detail on the main site.
$ npm install apiaxle-api
This is the (optional) API for managing users, keys and endpoints. Once installed, run it with:
$ apiaxle-api
$ npm install apiaxle-repl
A way to administer your ApiAxle installation via a command line. Once installed, run it with:
$ apiaxle
You then get a prompt where you can type help
to find out more.
This is a set of libraries which is required for the above components.
Check the main site for more detailed installation instructions.
This repository is auto-built and published as mapzen/apiaxle.
This project uses two Dockerfile
s, one for production usage named Dockerfile
,
and a second for development of ApiAxle itself, named Dockerfile-development
.
Docker Compose is configured to build the development version for you, see
below for examples.
Environment variables can be used to configure NODE_ENV
, REDIS_HOST
,
REDIS_PORT
, API_NAME_REGEX
and DEBUG_MODE
. Below are defaults for production:
NODE_ENV
=production
REDIS_HOST
=redis
REDIS_PORT
=6379
API_NAME_REGEX
=^(.+?)\\.api\\.
(extra backslash required for JSON)DEBUG_MODE
=false
docker-compose up -d redis
docker-compose up -d api
docker-compose up -d proxy
docker-compose run repl
docker-compose run repl test
docker-compose run --entrypoint sh repl
api acme create endPoint='localhost:8000'
key 1234 create
api acme linkkey 1234
curl localhost:3000?api_key=1234 -H 'Host: acme.api.localhost'