HttpTransportClient

HttpTransportClient

Core client

Constructor

new HttpTransportClient(transport, defaults)

Source:

Create a HttpTransport.

Parameters:
Name Type Description
transport Transport

Transport instance.

defaults object

default configutation

Methods

(async) asBody()

Source:

Initiates the request, returning the response body, if successful.

Example
const httpTransport = require('@bbc/http-transport');

const body = await httpTransport.createClient()
   .asBody();

   console.log(body);
Returns:

a Promise. If the Promise fulfils, the fulfilment value is the response body, as a string by default.

(async) asResponse()

Source:

Initiates the request, returning a http transport response object, if successful.

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .asResponse()

   console.log(response);
Returns:

a Promise. If the Promise fulfils, the fulfilment value is response object.

delete(url, request)

Source:

Make a HTTP DELETE request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .delete(url)
   .asResponse();
Parameters:
Name Type Description
url string
request object

body

Returns:

a HttpTransport instance

get(url)

Source:

Make a HTTP GET request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .get(url)
   .asResponse();
Parameters:
Name Type Description
url string
Returns:

a HttpTransport instance

Source:

Make a HTTP HEAD request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .head(url)
   .asResponse();
Parameters:
Name Type Description
url string
Returns:

a HttpTransport instance

headers(name, value)

Source:

Sets the request headers

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .headers({
     'User-Agent' : 'someUserAgent'
   })
   .asResponse();
Parameters:
Name Type Description
name string | object

header name or headers object

value string | object

header value

Returns:

a HttpTransport instance

patch(url, request)

Source:

Make a HTTP PATCH request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .put(url, requestBody)
   .asResponse();
Parameters:
Name Type Description
url string
request object

body

Returns:

a HttpTransport instance

post(url, request)

Source:

Make a HTTP POST request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .post(url, requestBody)
   .asResponse();
Parameters:
Name Type Description
url string
request object

body

Returns:

a HttpTransport instance

put(url, request)

Source:

Make a HTTP PUT request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .put(url, requestBody)
   .asResponse();
Parameters:
Name Type Description
url string
request object

body

Returns:

a HttpTransport instance

query(name, value)

Source:

Sets the query strings

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .query({
     'perPage' : 1
   })
   .asResponse();
Parameters:
Name Type Description
name string | object

query name or query object

value string | object

query value

Returns:

a HttpTransport instance

retry(timeout)

Source:

Set the number of retries on failure for the request

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .retry(5) // for this request only
   .asResponse();
Parameters:
Name Type Description
timeout integer

number of times to retry a failed request

Returns:

a HttpTransport instance

timeout(timeout)

Source:

Sets a request timeout

Example
const httpTransport = require('@bbc/http-transport');

const response = await httpTransport.createClient()
   .timeout(1)
   .asResponse();
Parameters:
Name Type Description
timeout integer

timeout in seconds

Returns:

a HttpTransport instance

use(fn)

Source:

Registers a per request plugin

Example
const toError = require('@bbc/http-transport-to-error');
const httpTransport = require('@bbc/http-transport');

httpTransport.createClient()
   .use(toError(404));
Parameters:
Name Type Description
fn function

per request plugin

Returns:

a HttpTransport instance