Skip to content

Beccaccino is an easy, sexy, reliable, framework agnostic http client for redux that is ⚡️beccaccino fast!

License

Notifications You must be signed in to change notification settings

extendi/beccaccino

Repository files navigation

Beccaccino

Build Status Coverage Status PRs Welcome GitHub issues Maintenance

Beccaccino is an easy, sexy, reliable, framework agnostic http client for redux that is blazing beccaccino fast!

Beccaccino is meant to be used both with Node.js and web applications (React, Vue, ...)

Getting Started

yarn add beccaccino

Import the factory for building the client:

> const {
    Beccaccino,
    beccaccinoMiddleware, 
    beccaccinoReducer, 
    BECCACCINO_REDUCER_NAME, 
    resultSelector 
  } = require('beccaccino');

Configure the client with endpoints:

> const endpoints = [{ name: 'getBeers', path: '/v2/beers/:id', method: 'get' }/*, other endpoints ...*/]
> const client = Beccaccino.configure({ baseURL: 'https://api.punkapi.com' }, endpoints);

Go get some beer:

// dispatch redux action
> const { createStore, applyMiddleware, combineReducers } = require('redux');
> const store = createStore(
    combineReducers({
      [BECCACCINO_REDUCER_NAME]: beccaccinoReducer,
    }),
    {},
    applyMiddleware(beccaccinoMiddleware),
  );
> store.dispatch(client.getBeers({ urlParams: { id: 1 } }))
> resultSelector({ state: store.getState(), endpointName: 'getBeers', limit: -1})
[ [ { id: 1,
      name: 'Buzz',
      tagline: 'A Real Bitter Experience.',
      first_brewed: '09/2007',
      description:
       'A light, crisp and bitter IPA brewed with English and American hops. A small batch brewed only once.',
      image_url: 'https://images.punkapi.com/v2/keg.png',
      abv: 4.5,
      ibu: 60,
      target_fg: 1010,
      target_og: 1044,
      ebc: 20,
      srm: 10,
      ph: 4.4,
      attenuation_level: 75,
      volume: [Object],
      boil_volume: [Object],
      method: [Object],
      ingredients: [Object],
      food_pairing: [Array],
      brewers_tips:
       'The earthy and floral aromas from the hops can be overpowering. Drop a little Cascade in at the end of the boil to lift the profile with a bit of citrus.',
      contributed_by: 'Sam Mason <samjbmason>' } ] ]

// just get some beer!
> client.getBeers({ urlParams: { id: 1 } }).execAsync.then(beer => console.log('Here\'s your beer! ', beer)

About

Beccaccino is an easy, sexy, reliable, framework agnostic http client for redux that is ⚡️beccaccino fast!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published