Howard The Duck
I simplify life! If you are on a project that requires a lot of api Calls I can just handle the data retrieval in a quick and efficient manner! Set a simple config file of the base URL and start making easier REST calls!
Howard is basically a factory function for an isomorphic-fetch call that extracts JSON and returns it as a promise. Do whatever you want with the Promise, tag it in a chain.....tap it and use the results? Make what you need to happen with it!
Examples!!!!
Including Howard:
;
Need Query Strings? put them in manually, or pass a param object!
const paramString = '?format=wookiee';
Using a param:
If you need to set up a client with a default configuration, use the withDefaults
method and specify a config object that gets merged with options for every request. In this example we also use async await:
const api = withDefaults(config); json(api('/people/1/')) .then((res) =>{ console.log('res', res) }) async function withDefaultsRequest() { let response = await json(api('/people/1/', { method: 'GET'})); return response; /* { "name": "Luke Skywalker", ... } */} withDefaultsRequest();
A Highly Opinionated Setup - The goal of this setup would to create a lib style setup and return the fetch with the assumption that most of the app is going to be delivering JSON. This would apply to almost all use cases.
import { withDefaults, json } from 'howard'; const api = withDefaults({ url: 'http://api.url.com',}); export function apiFetch(path, options = {}) { return json(api(path, options));}