micro-api-client

Micro REST API client

ISC 14 个版本
安装
npm install micro-api-client
yarn add micro-api-client
pnpm add micro-api-client
bun add micro-api-client
README

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.

版本列表
3.3.0 2018-09-11
3.2.3 2018-07-24
3.2.2 2018-01-15
3.2.1 2018-01-11
3.2.0 2017-10-05
3.1.0 2017-10-02
3.0.3 2017-09-07
3.0.2 2017-09-05
3.0.1 2017-09-05
3.0.0 2017-09-05
2.0.0 2016-12-29
1.1.1 2016-11-21
1.1.0 2016-11-21
1.0.0 2016-10-21