2.0.4 • Published 9 years ago

fetch-on-rest v2.0.4

Weekly downloads
12
License
Unlicense
Repository
github
Last release
9 years ago

Fetch-on-REST

Build Status

Fetch-on-REST is a RESTful API wrapper built around window.fetch.

GitHub provides a polyfill for fetch to work on all browsers. Fetch is also available on react-native by default.

This wrapper is intended to work on both the browsers as well as with react-native.

Usage

Using Fetch-on-REST is as simple as passing the data and handling the JSON response. Headers are automatically set to accept JSON and the responses are json objects.

var Rest = require('fetch-on-rest');
var api = new Rest('/api/v2');

api.get('users', {name: 'foo'}).then(function(response) {});
// GET request on '/api/v2/users?name=foo'

api.post('posts', {title: 'foo', content: 'bar'}).then(function(response) {});
// POST request on '/api/v2/posts' with data {"title": "foo", "content": "bar"}

API

Initialization

new Rest(basePath="/", addOptions=function() {}, useTrailingSlashes=false):

basePath: Is a string. Can be absolute or relative path.

addOptions(defaultOptions, url): Is an optional function. Can be used to modify the headers. Should modify the received defaultOptions object and not return a new object.

useTrailingSlashes: Default false. By setting true, .get('users') will hit the url /users/.

Example of addOptions:

// Adding same-origin and X-CSRFToken token
function addOptions(defaults, url) {
  defaults.credentials = 'same-origin';
  if(defaults.method != 'get')
    defaults.headers['X-CSRFToken'] = 'AUTHTOKENX';
}

var useTrailingSlashes = true;
var api = new Rest('/', addOptions, useTrailingSlashes);

Requests

.get(segments, query)

.post(segments, data, query)

.put(segments, data, query)

.patch(segments, data, query)

.del(segments, query)

.rawGet(segments, query)

All requests return a promise object. The promise object resolves to JSON response (except rawGet which resolves to text). URL parsing is handled using the exhaustive URI.js library.

segments: segments are the parts of url. Can be array or string.

query: query is the search or GET params part of the url. Should be a key-value object.

data: data is the json body to be sent in the request.

Changelog and Migration

Since version 2:

  • the delete method has been renamed as del
  • have dropped the babel and ES2015 dependencies: this makes usage with React Native smoother

Contribution

Though we intend to keep the library minimalistic, we would love to see the pull-requests and discuss new issues.

Thanks for checking it out.

2.0.4

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.7.1

9 years ago

1.7.0

9 years ago

1.6.8

9 years ago

1.6.7

9 years ago

1.6.6

9 years ago

1.6.5

9 years ago

1.6.4

9 years ago

1.6.3

10 years ago

1.6.2

10 years ago

1.6.1

10 years ago

1.6.0

10 years ago

1.5.8

10 years ago

1.5.7

10 years ago

1.5.6

10 years ago

1.5.5

10 years ago

1.5.1

10 years ago

1.4.0

10 years ago

1.3.0

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago