resource-op
is designed to handle ajax operations.
Please polyfill fetch api. resource-op
use fetch
api to launch ajax. whatwg-fetch is recommended.
installed with npm
npm install --save resource-op
import ResourceOp from 'resource-op';
const resource = ResourceOp.create('/resource', {
headers: {
'Content-Type': 'application/json',
'Authorization': THIS_IS_A_SECRET_TOKEN,
},
});
// GET /resource?hello=world&tags=1&tags=2&tags=3
resource.get({hello: 'world', tags: [1, 2, 3]});
// POST {hello: 'world'} -> /resource
resource.post({hello: 'world'});
// PUT {hello: 'world'} -> /resource
resource.put({hello: 'world'});
// DELETE /resource
resource.delete();
This is a static method that returns an instance of ResourceOp.
- url: Resource address, a function returning a string is also acceptable.
- fetchOpts: It is same as the second param of fetch. See how to use fetch on MDN. Default value is
{}
. - opts: If
empty
attribute istrue
, factory will return an instance without any restful methods. Default value is{}
.
Add a custom method to the instance.
- name: Method name appended on the instance
- METHOD: A valid restful method, e.g.
POST
,PUT
and etc - transform: A function that transforms the resource url to a new url. A url string is also accessible.
import ResourceOp from 'resource-op';
const resource= ResourceOp.create('/resource');
resource.addMethod('sort', 'POST', url => `${url}/_sort`);
// POST {a: 1} -> /resource/_sort
resource.sort({a: 1});
Extend an exsited instance and return a new instance. The arguments are the same as ResourceOp.create
.
import ResourceOp from 'resource-op';
const resource= ResourceOp.create('/resource');
const child = resource.extends('/some');
// GET -> /resource/some
resource.get();