Axios Wrapper
createApis(axiosOptions)
- Build an Axios API that implements a cancellable request caller that can be cancelled by redux sagas.
- Accepts default Axios options.
- Returns an object with
{ api, sagaApi }
whereapi
is the cancellable axios API, andsagaAPi
is an abstraction that usesapi
to simplify make API calls using redux sagas (see below).
Sample usage:
api
The base api object allows you to make regular API calls from anywhere in your app. This is basic axios stuff, with an added cancel
function with every request.
api.get(path, options)
Param | Type | Description |
---|---|---|
path | string | Request URL path |
options | object | Axios options |
api.put(path, payload, options)
Param | Description |
---|---|
path | Request URL path |
payload | Request payload |
options | Axios options |
api.patch(path, payload, options)
Param | Description |
---|---|
path | Request URL path |
payload | Request payload |
options | Axios options |
api.post(path, payload, options)
Param | Description |
---|---|
path | Request URL path |
payload | Request payload |
options | Axios options |
api.delete(path, payload, options)
Param | Description |
---|---|
path | Request URL path |
payload | Request payload |
options | Axios options |
api.addAuthorization(token)
Sets authorization header on axios instance
Param | Type | Description |
---|---|---|
token | string | Bearer auth token |
api.removeAuthorization()
Removes authorization header on axios instance
api.addHeader(name, value)
Adds a header value
Kind: global function
Param | Type | Description |
---|---|---|
name | string | header name |
value | string | header value |
api.removeHeader(name)
Removes a header value
Param | Type | Description |
---|---|---|
name | string | header name |
sagaApi
Saga API is a helper to reduce the amount of code one writes when make an ajax call. Here is your typical ajax call:
If we were to do this inside of sagas it would look like this:
As you can tell, this can get repetitive, hence why this abstraction was built. Simply put, you pass it a path, payload, success action, fail action, and optional done action. It will handle try catching for you:
info
If you decide to add a saga for done action, you will receive a payload of { data, error }
so you can decide how to proceed given the results. This is good for when you want to perform certain actions regardless of success or fail.
sagaApi.get(path, successAction, failAction, [doneAction?])
Param | Type | Required | Description |
---|---|---|---|
path | string | yes | Request URL path |
successAction | function | yes | Redux action to dispatch on success |
failAction | function | yes | Redux action to dispatch on fail |
[doneAction] | function | no | Redux action to dispatch when completed |
sagaApi.post(path, payload, successAction, failAction, [doneAction?])
Param | Type | Required | Description |
---|---|---|---|
path | string | yes | Request URL path |
payload | * | yes | Request payload |
successAction | function | yes | Redux action to dispatch on success |
failAction | function | yes | Redux action to dispatch on fail |
[doneAction] | function | no | Redux action to dispatch when completed |
sagaApi.put(path, payload, successAction, failAction, [doneAction?])
Param | Type | Required | Description |
---|---|---|---|
path | string | yes | Request URL path |
payload | * | yes | Request payload |
successAction | function | yes | Redux action to dispatch on success |
failAction | function | yes | Redux action to dispatch on fail |
[doneAction] | function | no | Redux action to dispatch when completed |
sagaApi.patch(path, payload, successAction, failAction, [doneAction?])
Param | Type | Required | Description |
---|---|---|---|
path | string | yes | Request URL path |
payload | * | yes | Request payload |
successAction | function | yes | Redux action to dispatch on success |
failAction | function | yes | Redux action to dispatch on fail |
[doneAction] | function | no | Redux action to dispatch when completed |
sagaApi.delete(path, payload, successAction, failAction, [doneAction?])
Param | Type | Required | Description |
---|---|---|---|
path | string | yes | Request URL path |
payload | * | yes | Request payload |
successAction | function | yes | Redux action to dispatch on success |
failAction | function | yes | Redux action to dispatch on fail |
[doneAction] | function | no | Redux action to dispatch when completed |