rb-data-provider-json-server

0.33.0 • Public • Published

rb-data-provider-json-server

A Restboard data provider for JSON REST server

Node.js CI

Getting started

import createProvider from "rb-data-provider-json-server";

const provider = createProvider("https://jsonplaceholder.typicode.com");

provider
  .getMany("posts")
  .then((posts) => console.log(posts))
  .catch((err) => console.error(err));

Additional options can be configured during the data provider construction:

const provider = createProvider("https://jsonplaceholder.typicode.com", {
  timeout: 3000,
  retries: 5,
  backoff: 300,
});

REST Dialect

Method API call
getMany GET http://my.api.url/:resource
getOne GET http://my.api.url/:resource/:id
createOne POST http://my.api.url/:resource
updateOne PATCH http://my.api.url/:resource/:id
updateMany PATCH http://my.api.url/:resource
deleteOne DELETE http://my.api.url/:resource/:id
deleteMany DELETE http://my.api.url/:resource

Options

Name Description Default
timeout The timeout (ms) for each single HTTP request attempt 5000
retries The number of attempts before failing 3
backoff The incremental delay (ms) between request attempts 500
client A fetch-like HTTP client used to perform the requests fetch
tokenGetter An async function to get the bearer token to be used undefined
contentTypeParser A function used to parse the content type of the request payload (if any) (data) => 'application/json; charset=UTF-8'
responseDataParser A sync function to extract the payload from the response payload (payload) => payload?.data || payload
responseMetaParser A sync function to extract the meta details from the response payload (e.g. pagination data) (payload) => payload?.meta || {}
responseErrorParser A (a)sync function to extract the details from an error response (res) => res?.statusText || res?.status
querystringRenderer A function to render the request querystring Provided renderQuerystring function
idempotentUpdate If true, the PUT method will be used on update requests false
cache An optional cache object to store request responses. Should implement the following API: has(reqId), get(reqId), set(reqId,res) undefined

Test

npm test

Contribute

If you want, you can also freely donate to fund the project development:

Donate

Have you found a bug?

Please open a new issue on:

https://github.com/restboard/rb-data-provider-json-server/issues

Acknowledgements

This project is inspired by:

License

Copyright (c) Emanuele Bertoldi

MIT License

Package Sidebar

Install

npm i rb-data-provider-json-server

Weekly Downloads

5

Version

0.33.0

License

MIT

Unpacked Size

22.5 kB

Total Files

17

Last publish

Collaborators

  • zuck