rb-data-provider-json-server
v0.33.0
Published
A Restboard data provider for JSON REST server
Downloads
21
Maintainers
Readme
rb-data-provider-json-server
A Restboard data provider for JSON REST server
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:
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