docs: function callApi(endpoint, schema) {
    const fullUrl = (endpoint.indexOf(API_ROOT) === -1) ? API_ROOT + endpoint : endpoint;
  
    return fetch(fullUrl)
      .then(response =>
        response.json().then(json => ({ json, response }))
      ).then(({ json, response }) => {
        if (json.error) {
          throw new Error(json.error);
        }
        if (!response.ok) {
          throw new Error(json && json.message || response.statusText || response.status + ' http error');
        }
  
        const camelizedJson = camelizeKeys(json);
        const nextPageUrl = getNextPageUrl(response);
  
        return Object.assign({},
          normalize(camelizedJson, schema),
          { nextPageUrl }
        );
      })
      .then(
        response => ({response})
      );
  }