# standardapi-client

> A javascript client for making StandardAPI calls.

Latest version **1.0.5** (published 2020-02-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install standardapi-client
pnpm add standardapi-client
yarn add standardapi-client
bun add standardapi-client
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2020-02-28 |
| First published | 2020-02-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | v10.15.1 |
| Dependencies | 3 |
| Unpacked size | 194.6 KB |
| Known vulnerabilities | 0 (+25 in 1 direct dependencies) |
| Install scripts | no |
| Author | Will Laeri |
| Maintainers | wlaeri |

## Links

- npm: https://www.npmjs.com/package/standardapi-client
- npm.io page: https://npm.io/package/standardapi-client

## Dependencies (3)

- [qs](https://npm.io/package/qs.md) ^6.9.1
- [axios](https://npm.io/package/axios.md) ^0.19.2
- [invariant](https://npm.io/package/invariant.md) ^2.2.4

## Recent versions

- 1.0.5 (latest) — 2020-02-28
- 1.0.4 — 2020-02-26
- 1.0.3 — 2020-02-16
- 1.0.2 — 2020-02-15
- 1.0.1 — 2020-02-15
- 1.0.0 — 2020-02-13

## README

# StandardAPI Client
[![npm version](https://img.shields.io/npm/v/standardapi-client.svg?style=flat-square)](https://www.npmjs.org/package/standardapi-client)
[![wlaeri](https://circleci.com/gh/wlaeri/standardapi-client.svg?style=svg)](https://circleci.com/gh/wlaeri/standardapi-client/4)
[![install size](https://packagephobia.now.sh/badge?p=standardapi-client)](https://packagephobia.now.sh/result?p=standardapi-client)

A javascript client for making [StandardAPI](https://github.com/waratuman/standardapi) calls.

## Installation

Using npm:

```bash
$ npm install standardapi-client
```

Using yarn:

```bash
$ yarn add standardapi-client
```

## Implementation

First the client must be instantiated.

```node
import StandardAPIClient from 'standardapi-client';

const client = new StandardAPIClient({
  baseURL: API_BASE_URL
})
```

If the Rails server uses authorization headers you can add them on instantiation.

```node
import StandardAPIClient from 'standardapi-client';

const client = new StandardAPIClient({
  baseURL: API_BASE_URL,
  headers: {
    'Api-Key': API_KEY,
    'Api-Version': API_VERSION,
  }
})
```

## Usage
Essentially, StandardAPI Client extends [axios](https://github.com/axios/axios) under the hood, adding five methods `create`, `read`, `update`, `destroy`, and `count` for making StandardAPI calls.

### client.create(baseModel, payload)
Sends a POST request to the Rails server to create a record.

```node
const response = await client.create('todos', {
  description: 'Update the StandardAPI Client docs.',
  priority: 'MEDIUM'
})

console.log(response.data) // Newly created todo record.
```

### client.read(baseModel, params)
Sends a GET request to the Rails server to query a record set.

```node
const response = await client.read('todos', {
  limit: 5,
  offset: 10,
  where: {
    priority: 'HIGH'
  },
  include: {
    photos: true
  },
  order: {
    created_at: 'desc'
  }
})

console.log(response.data) // The array of todo records that match the query parameters.
```

### client.update(baseModel, payload)
Sends a PATCH request to the Rails server to update a record.

```node
const response = await client.update('todos', {
  id: 'abc-123',
  priority: 'HIGH'
})

console.log(response.data) // The updated todo record.
```

### client.destroy(baseModel, id)
Sends a DELETE request to the Rails server to destroy a record.

```node
const response = await client.delete('todos', 'abc-123')

console.log(response.status) // Returns 204 if record is successfully deleted.
```

### client.count(baseModel, params)
Sends a GET request to the Rails server to return the count of a record set.

```node
const response = await client.count('todos', {
  where: {
    priority: 'HIGH'
  }
})

console.log(response.data) // The number of todo records that match the query parameters.
```

## Resources

* [StandardAPI Docs](https://github.com/waratuman/standardapi)
* [React StandardAPI Docs](https://github.com/wlaeri/react-standardapi)

## License

[MIT](LICENSE)

---
_Source: https://npm.io/package/standardapi-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
