rw-api-microservice-node
TypeScript icon, indicating that this package has built-in type declarations

5.1.3 • Public • Published

RW API microservice utility for Nodejs applications

Build Status Test Coverage

Library to register and integrate microservices in the RW API.

Supports Koa 2.x and 1.x frameworks.

Requirements

  • Nodejs v11 or greater

Install

Using NPM:

npm install --save rw-api-microservice-node

Using Yarn:

yarn add rw-api-microservice-node

Use in microservice

In the listen callback of your Koa application, add the following code snippet:

const Koa = require('koa');
const RWAPIMicroservice = require('rw-api-microservice-node')

const app = new Koa();

app.use(RWAPIMicroservice.bootstrap({
  logger: logger,
  microserviceToken: '<your microservice token>',
  gatewayURL: '<your gateway URL>',
  fasltyEnabled: true,
  fastlyServiceId: '<your Fastly service id>',
  fastlyAPIKey: '<your Fastly API key>',
  awsRegion: '<your AWS region>',
  awsCloudWatchLogStreamName: '<your AWS CloudWatch log stream name>',
}))

// Make sure you add your auth-depending routes *after* bootstraping this module

const server = app.listen(process.env.PORT, () => {
  logger.info('Server started!');
});

Configuration

These are the values you'll need to provide when using this library:

See this link for details on how to get Fastly credentials.

Argument name Type Description Required? Default value
logger Object A bunyan logger object, for logging purposes yes
gatewayURL string The URL of the API as a whole, where all other services will be reachable yes
microserviceToken string JWT token to use on calls to other services yes
skipAPIKeyRequirementEndpoints Array List of object containing a method and pathRegex. Incoming requests that match one of the elements on the list will bypass API Key requirement. no
fastlyEnabled boolean If set to true, the Fastly integration will be enabled yes
fastlyServiceId string Access credentials to the Fastly API if Fastly enabled
fastlyAPIKey string Access credentials to the Fastly API if Fastly enabled
requireAPIKey boolean If API keys are required. If set to true, requests with no API key automatically get a HTTP 403 response. no true
awsCloudWatchLoggingEnabled boolean If API key usage should be logged to AWS CloudWatch. no true
awsRegion string Which AWS region to use when logging requests to AWS CloudWatch. yes
awsCloudWatchLogGroupName string Which CloudWatch Log Group name to use when logging requests to AWS CloudWatch. no 'api-keys-usage'
awsCloudWatchLogStreamName string Which CloudWatch Log Stream name to use when logging requests to AWS CloudWatch. yes

Readme

Keywords

Package Sidebar

Install

npm i rw-api-microservice-node

Weekly Downloads

6

Version

5.1.3

License

MIT

Unpacked Size

132 kB

Total Files

22

Last publish

Collaborators

  • andres.gonzalez
  • davidsingal
  • mbarrenechea
  • clementprdhomme
  • tiagojsag
  • d4weed
  • hotzevzl