kingkong

Generator based HTTP client for the Kong API Gateway


Keywords
kong, api, gateway, mashape, esatterwhite, microservice, kingkong
License
MIT
Install
npm install kingkong@2.0.2

Documentation

King Kong Build Status

HTTP Client For Kong Api Gateway

King is a small library for managing api, consumer and plugin configuration of a KONG cluster. The primary purpose is to keep API configuration in sync by either creating or updating records using the kong admin api.

It is not intended to configure kong servers

Version 2.x targest Kong v0.10.0+, for Kong v0.9.0, use Version 1.x of this project

A kingkong instance can take multiple hosts and will round-robbin between them. Currently it will not remove hosts that fail to respond.

require('util');
var King = require('kingkong');

var k = new King({
    hosts:'http://localhost:8001, http://localhost:8002'
    ,sync:true // auto sync configuration
    ,apis:[{
          "upstream_url": "http://127.0.0.1:3000/api/v1",
          "request_path": "/fakeservice",
          "strip_request_path": true,
          "name": "integration",
          "plugins":{
            "http-log":{
              config:{
                  http_endpoint:'http://127.0.0.1:3005',
                  method:'POST'
              } 
            }
          }
    }]
    ,onSync: function(){
        console.log('synced');
    }
});

List all APIs

You can fetch all apis currently registered using the list method

var King = require('kingkong')

var k = new King({
    hosts:['http://localhost:8001', 'http://localhost:8002']
});

k.list('apis').then( console.log)

List all Plugins

You can fetch all Plugins currently registered using the list method

var King = require('kingkong')

var k = new King({
    hosts:['http://localhost:8001', 'http://localhost:8002']
});

k.list('plugins').then( console.log )

List all Consumers

You can fetch all Consumers currently registered using the list method

var King = require('kingkong')

var k = new King({
    hosts:['http://localhost:8001', 'http://localhost:8002']
});

k.list('consumers').then( console.log )