Skip to content
This repository has been archived by the owner on Sep 8, 2021. It is now read-only.
/ micro-api-client Public archive

Small library for talking to micro REST APIs (not related to Netlify's main API)

Notifications You must be signed in to change notification settings

netlify/micro-api-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

micro-api-client

Build Status

Small library for talking to micro REST APIs (not related to Netlify's main API).

Installation

yarn add micro-api-client

Usage

import API, { getPagination } from 'micro-api-client'

const api = new API("/some/api/endpoint");
api
  .request("foo")
  .then(response => console.log(response))
  .catch(err => console.error(err));

API

api = new API(apiURL, [opts])

Create a new micro-api-client instance. apiURL can be a full or relative URL. Optional opts include:

{
  defaultHeaders: {
  } // header values to include in every request.
}

api.request(path, [opts])

Make a request to the apiURL at the given path. Optional opts are passed to the fetch API:

// Default options
{
  headers: {} // Optional headers object.  Overrides defaultHeaders
  credentials: "same-origin" // set fetch credentials option
  "Content-Type": "application/json" // set Content-Type fetch option
}

Returns a promise with the response. If the contentType is JSON, it will be checked for pagination and return either the parsed JSON object or a paginated JSON object:

// See src/pagination.js
{
  pagination: {
    last,
    next,
    prev,
    first,
    current,
    total
  },
  items: json
}

If an error occurs during the request, the promise may be rejected with an HTTPError, TextHTTPError, or JSONHTTPError.

class HTTPError extends Error

Additional error properties from Error

{
  stack, // stack trace of error
  status // status code of response
}

class TextHTTPError extends HTTPError

Additional error properties from HTTPError

{
  data // data of text response
}

class JSONHTTPError extends HTTPError

Additional error properties from HTTPError

{
  json // json of a JSON response
}

pagination = getPagination(response)

Returns a pagination object that micro-api-client uses internally.

About

Small library for talking to micro REST APIs (not related to Netlify's main API)

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •