ncats / services

base service for API (Express)
MIT License
2 stars 9 forks source link
expressjs http socket-io websocket websocket-api

Coverage Status Build Status semantic-release codecov

LabShare Services

Usage

npm i @labshare/services

const {Services} = require('@labshare/services');

let options = {
    // Override default options. 
    // The available configuration options are described in the "Configuration" section below.
};

let services = new Services(options);

services.config(({app, services}) => {
   // Optionally perform additional customization of the Express app initialized by Services and the loaded routes
   // Example (adds Express.js compression middleware):
   app.use(compression());
});

// Start up the server with all the loaded HTTP and Socket APIs
services.start();

Configuration

Configuring LabShare Services

Environment Variables

LabShare Service Plugins

Example plugin usage

const {Services} = require('@labshare/services');
const servicesAuth = require('@labshare/services-auth');

const services = new Services({/* options */);

services.config(servicesAuth({/* options */}));

Default HTTP Routes

Versions

GET /<service-path>/versions

Response

{
   "buildVersion":"v2017.0914.5",
   "versions": [
       {"api":"ls", apiDetails":{"name":"labshare","version":"v0.17.0631","description":"LabShare Services"}}
   ]
}

Example: http://localhost:8000/versions

API Explorer

GET /<service-path>/explorer

Response

Swagger HTML page providing documentation for endpoints across all API packages

Example: http://localhost:8000/explorer

Working with LabShare APIs

Running APIs

Running Loopback APIs

Creating HTTP APIs

Creating Socket APIs

Managing APIs with PM2

Development

  1. Install Node.js.
  2. npm i -g lsc
  3. Run npm install inside the Service's root directory to install its dependencies.

Tests

npm test

LoopBack