@gigster/module-redux-request

Role | Name | Email | Slack ---- | ---- | ----- | ----- *Product Owner* | Frances Haugen | [frances@gigster.com](mailto:frances@gigster.com) | [@frances] *Maintainer* | Geoff Kinder | [geoff.kinder@gigster.com](mailto:geoff.kinder@gigster.com) | [@geoff]

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@gigster/module-redux-request
Minified + gzip package size for @gigster/module-redux-request in KB

Readme

redux-request

Role Name Email Slack
Product Owner Frances Haugen frances@gigster.com [@frances]
Maintainer Geoff Kinder geoff.kinder@gigster.com [@geoff]
Developer Alice Wang alice@gigster.com [@alicebot]
Developer Dan Isaza dan@gigster.com [@dan]
Developer Mark Miyashita mark.miyashita@gigster.com [@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);

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.