Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/netlify/micro-api-client
Small library for talking to micro REST APIs (not related to Netlify's main API)
https://github.com/netlify/micro-api-client
Last synced: 3 months ago
JSON representation
Small library for talking to micro REST APIs (not related to Netlify's main API)
- Host: GitHub
- URL: https://github.com/netlify/micro-api-client
- Owner: netlify
- Archived: true
- Created: 2016-10-21T06:37:07.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-08-20T19:19:45.000Z (about 3 years ago)
- Last Synced: 2024-07-20T03:02:22.898Z (4 months ago)
- Language: JavaScript
- Homepage: https://npmjs.com/micro-api-client
- Size: 341 KB
- Stars: 28
- Watchers: 17
- Forks: 7
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# micro-api-client
[![Build Status](https://travis-ci.org/netlify/micro-api-client.svg?branch=master)](https://travis-ci.org/netlify/micro-api-client)
Small library for talking to micro REST APIs (not related to Netlify's main API).
## Installation
```
yarn add micro-api-client
```## Usage
```js
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:
```js
{
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`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) API:
```js
// 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:
```js
// 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
```js
{
stack, // stack trace of error
status // status code of response
}
```### `class TextHTTPError extends HTTPError`
Additional error properties from HTTPError
```js
{
data // data of text response
}
```### `class JSONHTTPError extends HTTPError`
Additional error properties from HTTPError
```js
{
json // json of a JSON response
}
```### `pagination = getPagination(response)`
Returns a pagination object that `micro-api-client` uses internally.