@springworks/api-client
TypeScript icon, indicating that this package has built-in type declarations

3005.318.0 • Public • Published

@springworks/api-client

Module for sending requests to other APIs through a circuit breaker created by @springworks/circuit-breaker-factory.

yarn add @springworks/api-client

API

createClient(params)

Creates a api client using the provided config. Returns an object that exposes a sendRequest(opts, expected_status_codes) function that returns a Promise.

params

Name Type Description Required
base_url String Fully qualified uri string used as the base url Yes
circuit_breaker_config Object Optional. The circuit breaker config. Please refer to this documentation for details. Yes
logger Logger See @springworks/logger-interfaces Yes
auth Object An object with username and password. No
opt_options Object No
opt_options.opt_auth Object Optional authentication object that will be used for all requests sent towards the provided base_url. If there is an auth property in the options send in sendRequest then opt_auth gets overwritten. No
opt_options.opt_timeout Number Timeout (millis) used in all request from created client. No

sendRequest(options, expected_status_codes)

Sends the request based on the provided options and returns a resolved/rejected Promise.

Options

Parameter Description Type Required
endpoint_uri URI of the endpoint that's to be reached string Yes

expected_status_codes

Type Description Entries Type Entries Range Required
Array Expected status codes by the invoker of this function Number [100, 500) Yes

Example Usage

var api_client_factory = require('@springworks/api-client');

var config = {
  source_name: 'my-api',
  target_name: 'facebook-graph-api',
  window_duration: 1000, // optional
  num_buckets: 10, // optional
  timeout_duration: 3000, // optional
  error_threshold: 50, // optional
  volume_threshold: 5, // optional
};

var api_client = api_client_factory.createClient({
  base_url: 'http://api.machinetohuman.com',
  circuit_breaker_config: config,
  logger: logger,
});

var options = {
  endpoint_uri: '/vehicles/1234',
  // other request options
};

var expected_status_codes = [200];

api_client
  .sendRequest(options, expected_status_codes)
  .then(function (response_body) {
    // do your thing;
  })
  .catch(function (err) {
    // err.code is the statusCode of the response or 417 (if responded with code < 400)
  });

Readme

Keywords

none

Package Sidebar

Install

npm i @springworks/api-client

Weekly Downloads

1,761

Version

3005.318.0

License

none

Unpacked Size

78.8 kB

Total Files

19

Last publish

Collaborators

  • springworksdev
  • springworksprime