Skip to content

Latest commit

 

History

History
160 lines (116 loc) · 3.59 KB

File metadata and controls

160 lines (116 loc) · 3.59 KB

HttpTranport

Build Status Coverage Status

A flexible rest client that can be easy extended using plugins

Common examples

The example below prints all of the files in a directory that have the .json file extension:

const httpTransport = require('http-transport');

Supported HTTP methods

Make a HTTP GET request using .get

    const url = 'http://example.com/';
    HttpTransport.createClient()
        .get(url)
        .asResponse()
        .then((res) => {
          console.log(res);
        });

Make a HTTP POST request using .post

   const url = 'http://example.com/';
   HttpTransport.createClient()
        .post(url, requestBody)
        .asResponse()
        .then((res) => {
          console.log(res);
        });

Query strings

Make a HTTP GET request specifiying query strings using .query

    const url = 'http://example.com/';
    HttpTransport.createClient()
        .get(url)
        .query('example', 'true')
        .asResponse()
        .then((res) => {
          console.log(res);
        });

Headers

Make a HTTP GET request specifiying request headers using .headers

    HttpTransport.createClient()
        .get(url)
        .headers({
          'someHeader1' : 'someValue1'
          'someHeader2' : 'someValue2'
        })
        .asResponse()
        .then((res) => {
            console.log(res);
        });

Handling errors

Convert Internal Server responses (500) to errors:

    const toError = require('http-transport-to-errors');

    const url = 'http://example.com/';
    const client = HttpTransport.createClient();
    client.useGlobal(toError()); // for all requests

    client.get(url)
        .asResponse()
        .catch((err) => {
          console.error(err);
        });

Retries

Make a HTTP GET and retry twice on error .retry

const toError = require('http-transport-to-errors');

return HttpTransport.createClient()
        .useGlobal(toError())
        .get('http://example.com/')
        .retry(2)
        .asResponse()
        .catch(assert.ifError)
        .then((res) => {
          assert.equal(res.statusCode, 200);
        });

Timeouts

Make a HTTP GET and timeout after 50ms .query

HttpTransport.createClient()
      .get(url)
      .timeout(50)
      .asBody();

Using alternative HTTP clients

Make a HTTP GET request and supply a alternative HTTP transport via .createClient

const url = 'http://example.com/';
const HttpTransport = require('http-transport');
const Wreck = require('http-transport-wreck');

HttpTransport.createClient(Wreck)
   .get(url)
   .asResponse()
   .then((res) => {
     if (res.statusCode === 200) {
       console.log(res.body);
     }
   });
});

Offical plugins

See Callbacks

See Wreck

See Ratelimiting

See Caching

See Errors

See Response validation

See Circuit-breaker

See Stats

See Logging