Skip to content

beliven-it/rb-data-provider-json-server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A Restboard data provider for JSON REST server

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%