An ES6 wrapper class for simplified fetch API requests.
This example shows you how to extend the fetch class and create an instances with different URL prefixes.
import Fetch from 'fetch-class'
let apis = {
local: new Fetch(), // Instance with no prefix
placeholder: new Fetch('http://jsonplaceholder.typicode.com') // Instance with jsonplaceholder prefix
}
apis.placeholder.get('/posts/', (response) => {
// Application logic to deal with array of posts from http://jsonplaceholder.com/posts/
})
apis.local.get('/posts/', (response) => {
// Application logic to deal with array of posts from local server - /posts/
})
Base URL prefix for all instance requests.
Default options for all instance requests. Supports all options defined in the fetch API documentation, not listed here.
method
: Request method - GET, POST, PUT, PATCH, DELETEdata
: Data to add to request body or query string, depending on request typequeryParams
: Associative object of properties to add to the query string, regardless of request methodalwaysTriggerCallback
: Trigger the callback, even if request failscallback
: Callback to trigger when request completes - is provided with the promise, response and what's provided inextraCallbackParams
optionextraCallbackParams
: Extra parameters to provide to the callback arguments objectheaders
: HTTP headers object to set on the request
{
method: 'GET',
data: {},
queryParams: {},
alwaysTriggerCallback: false,
callback: undefined,
extraCallbackParams: {},
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}
Public control methods to be accessed on an instance are as follows:
Perform a request with the provided URL and options.
Perform a GET request with the provided URL and options.
Perform a POST request with the provided URL and options.
Perform a PUT request with the provided URL and options.
Perform a PATCH request with the provided URL and options.
Perform a DELETE request with the provided URL and options.
The class triggers the following events:
Triggered before request is sent.
{
url: url, // URL to send request to - appended to the instance's base URL
options: options // Request options
}
Triggered before request is sent.
{
url: url, // URL to send request to - appended to the instance's base URL
options: options, // Request options
args: args // Callback arguments object
}