@sealsystems/connect-service

Connects to a service.

Usage no npm install needed!

<script type="module">
  import sealsystemsConnectService from 'https://cdn.skypack.dev/@sealsystems/connect-service';
</script>

README

@sealsystems/connect-service

CircleCI AppVeyor

Connects to a service with given host name and port number.

Installation

$ npm install @sealsystems/connect-service

Quick start

First you need to add a reference to @sealsystems/connect-service within your application.

const connectService = require('@sealsystems/connect-service');

Please note: A connection to consul must already exist before you can use the module.

To create a HTTP/HTTPS connection to an instance of a service (e.g. myService), use:

const consul = require('@sealsystems/consul');
consul.connect(...);

const client = await connectService({
  service: 'myService',
  path: '/job',
  consul
}, {
  name: 'hostname',
  port: 3000
});

client.on('response', (response) => {
  console.log(`Response status: ${response.statusCode}`);
});

client.write('Hello service!');
client.end();

The first parameter is an options object that can contain the following properties:

property type description
service required string Name of the service to access
consul required object Initialized instance of node-consul
headers optional object Additional HTTP/HTTPS headers
method optional string HTTP/HTTPS method, default POST
path optional string URL-path to access, default /

Here is an example of a more complete options object:

const options = {
  headers: {
    'content-type': 'application/json'
  },
  method: 'POST',
  path: '/url/path',
  service: 'myService',
  consul
};

Second parameter is the host name and port number. Example:

const host = {
  name: 'hostname',
  port: 3000
};

The return value client contains a http.ClientRequest object for further use.

HTTP and HTTPS

The protocol used for a connection depends on the target (local or remote) and the value of the environment variable TLS_UNPROTECTED. The TLS certificates provided by @sealsystems/tlscert will be used for HTTPS connections. It is not possible to override the chosen protocol.

Running the build

To build this module use roboter.

$ bot