@gigster/module-redux-request
v2.0.0
Published
Role | Name | Email | Slack ---- | ---- | ----- | ----- *Product Owner* | Frances Haugen | [[email protected]](mailto:[email protected]) | [@frances] *Maintainer* | Geoff Kinder | [[email protected]](mailto:[email protected]) | [@geoff]
Downloads
26
Readme
redux-request
Role | Name | Email | Slack ---- | ---- | ----- | ----- Product Owner | Frances Haugen | [email protected] | [@frances] Maintainer | Geoff Kinder | [email protected] | [@geoff] Developer | Alice Wang | [email protected] | [@alicebot] Developer | Dan Isaza | [email protected] | [@dan] Developer | Mark Miyashita | [email protected] | [@mark]
Overview
Adds a generic request layer to make requests and parse responses. In also includes interceptors for the following frameworks:
- Loopback
Usage
Specification
Name | Status | Description
---- | ------ | -----------
generateTests
| true
/false
| Set to true if you would like generated tests to be created for you for the request layer.
Dependencies
This module works with the create-react-app
block located here and the react-base
module located here.
To run the generated tests, you must also use the react-jest
module located here.
Examples
Common scenarios for using this module include:
Authentication using withAuth
In this example, we use withAuth
to set the 'Authentication' header on the request:
import requestCreator, { Loopback } from '../api/request';
// Create the request creator.
const createRequest = requestCreator(Loopback);
// Create a request.
// withAuth will set the TOKEN to the 'Authentication' header.
const request = createRequest().withAuth(TOKEN);
// Make the request.
request.get(URL);
Custom Headers using setHeaders
In this example, we use setHeaders
to set custom headers on the request:
import requestCreator, { Loopback } from '../api/request';
// Create the request creator.
const createRequest = requestCreator(Loopback);
// Create a request.
// setHeaders will set the included headers on the request.
const request = createRequest().setHeaders(HEADERS);
// Make the request.
request.get(URL);
Filters using order
, limit
, skip
, and where
In this example, we use order
, limit
, skip
, and where
to filter data on the API side:
import requestCreator, { Loopback } from '../api/request';
// Create the request creator.
const createRequest = requestCreator(Loopback);
// Create a request where we order by the name, skip the first 20 objects, limit to the next 10, and only include objects where the age is either 10, 20, or 30.
const request = (
createRequest()
.order({name: 'DESC'})
.limit(10)
.skip(20)
.where({ age: { inq: [10, 20, 30] } });
);
// Make the request.
request.get(URL);
Nested Data using include
In this example, we use include
to request nested data (if the API supports it):
import requestCreator, { Loopback } from '../api/request';
// Create the request creator.
const createRequest = requestCreator(Loopback);
// Create a request with nested data included.
const request = createRequest().include([
'user',
'products',
'skills',
]);
// Make the request.
request.get(URL);