Merge pull request #49 from alexsong93/bufferLimit

Increase in-memory buffer size
tree: abcc810c50fc936da6bc1f8d9417a19fe8e4832e
  1. api-gateway-config/
  2. concourse/
  3. doc/
  4. .gitignore
  5. Dockerfile
  6. init.sh
  7. LICENSE
  8. Makefile
  9. README.md
README.md

apigateway

A performant API Gateway based on Openresty and NGINX.

Project status

This project is currently considered pre-alpha stage, and should not be used in production. Large swaths of code or APIs may change without notice.

Table of Contents

Quick Start

docker run -p 80:80 -p <managedurl_port>:8080 -p 9000:9000 \
            -e PUBLIC_MANAGEDURL_HOST=<managedurl_host> \
            -e PUBLIC_MANAGEDURL_PORT=<managedurl_port> \
            -e REDIS_HOST=<redis_host> \
            -e REDIS_PORT=<redis_port> \
            -e REDIS_PASS=<redis_pass> \
            openwhisk/apigateway:latest

This command starts an API Gateway that subscribes to the Redis instance with the specified host and port. The REDIS_PASS variable is optional and is required only when redis needs authentication.

On startup, the API Gateway subscribes to redis and listens for changes in keys that are defined as resources:<namespace>:<resourcePath>.

Routes

See here for the management interface for creating tenants/APIs. For detailed API policy definitions, see here.

Developer Guide

Running locally

To build the docker image locally use:

 make docker

To Run the Docker image

 make docker-run PUBLIC_MANAGEDURL_HOST=<mangedurl_host> PUBLIC_MANAGEDURL_PORT=<managedurl_port> \
   REDIS_HOST=<redis_host> REDIS_PORT=<redis_port> REDIS_PASS=<redis_pass>

Testing

Unit tests can be found in the api-gateway-config/tests/spec directory.

First install the necessary dependencies:

 make test-build

Then, run the unit tests:

 make test-run

This will output the results of the tests as well as generate a code coverage report.