A Restboard data provider for JSON REST server
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,
});
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 |
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 |
npm test
If you want, you can also freely donate to fund the project development:
Please open a new issue on:
https://github.com/restboard/rb-data-provider-json-server/issues
This project is inspired by:
Copyright (c) Emanuele Bertoldi