An open API service indexing awesome lists of open source software.

https://github.com/vasa-develop/redux-cross-fetch

A Redux middleware for API requests
https://github.com/vasa-develop/redux-cross-fetch

Last synced: 7 months ago
JSON representation

A Redux middleware for API requests

Awesome Lists containing this project

README

          

*Add `redux-cross-fetch` middleware to `createStore()`*

## store.js

```
import { createStore, applyMiddleware } from 'redux'
import rootReducer from '../reducers'
import apiMiddleWare from 'redux-cross-fetch'

const store = createStore(rootReducer, applyMiddleware(apiMiddleWare))

export default store
```

The middleware takes following params:

```
@param {url}: [REQUIRED] the request URL

@param {method}: [REQUIRED] HTTP method

@param {headers}: [OPTIONAL] headers sent with the HTTP request

@param {body}: [OPTIONAL] body sent with the HTTP request

@param {success}: [REQUIRED] action creator for successful response
Expects a payload for Server Response

@param {failure}: [REQUIRED] action creator for failed response
Expects a payload for Server Error
```

## actions.js

*Create actions with `type` including the string `API_REQUEST` to fire the middleware.*

```
export const testAction = () => ({
type: "API_REQUEST",
payload: {
request: {
url: "https://api.github.com/users/vasa-develop",
method: "GET"
},
success: apiSuccess,
failure: apiFailure
}
})

export const apiSuccess = (response) => ({
type: "API_SUCCESS",
payload: {
response: response
}
})

export const apiFailure = (error) => ({
type: "API_FAILURE",
payload: {
error: error
}
})
```