Skip to content

mapzen/apiaxle

 
 

Repository files navigation

ApiAxle

Gitter

http://apiaxle.com

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:

The proxy

$ 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.

The API

$ npm install apiaxle-api

This is the (optional) API for managing users, keys and endpoints. Once installed, run it with:

$ apiaxle-api

The REPL

$ 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.

The base libs

This is a set of libraries which is required for the above components.


Installation

Check the main site for more detailed installation instructions.

Build

  • master: Build Status
  • develop: Build Status

Docker

Docker image

This repository is auto-built and published as mapzen/apiaxle.

Dockerfiles

This project uses two Dockerfiles, 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

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

Start services

docker-compose up -d redis
docker-compose up -d api
docker-compose up -d proxy

Run repl

docker-compose run repl

Run tests

docker-compose run repl test

Enter container

docker-compose run --entrypoint sh repl

Example adding an api and key:

api acme create endPoint='localhost:8000'
key 1234 create
api acme linkkey 1234

Example curl:

curl localhost:3000?api_key=1234 -H 'Host: acme.api.localhost'

Packages

No packages published

Languages

  • CoffeeScript 97.8%
  • Shell 1.1%
  • Makefile 1.1%