RestJS is somewhat based off Restangular. It is an “ORM” style library for consuming REST APIs on the frontend.
This is very much still a 1.0 version, so expect breaking changes and feature updates. It’s also only really been tested in Chrome on OS X and PhantomJS, so it definitely needs more browser testing.
If you’d like, fill out this form to receive an invite to Slack.
Install using Bower:
bower install restjs
By default, the non-minified, non-polyfill version is set as the main
property for the Bower package. The polyfill version includes the Babel polyfill in the source. Depending on what you’re doing, you might need the polyfill to be included. Here’s a quick example of how to use the polyfill version instead:
{
"overrides": {
"restjs": {
"main": [
"dist/rest.polyfill.js"
]
}
}
}
Other options include the minified version (dist/rest.min.js
), the Node version (dist/rest.node.js
: includes an export statement for ES6 modules), and the polyfill & minified version (dist/rest.polyfill.min.js
)
// Create a model factory
let Doctor = Rest.factory('doctors')
// Create a new element, passing in the object as the first argument
let doctor = Doctor.create({id: 11, first: "Matt", last: "Smith"})
// Save it!
doctor.post()
// Update something
doctor.name = "Matthew"
doctor.patch()
// Get a list of users
Doctor.getList().then(function(doctors) {
// Do something with the array
})
Configuration can be set using Rest.Config.set()
:
Rest.Config.set({baseUrl: 'https://restjs.js.org'})
baseUrl
: StringThe base URL for requests. I.e, if the baseUrl
is set to http://google.com
, all requests will be prefixed with http://google.com
defaultParams
: ObjectThe default parameters for requests. Can be overriden by specific requests
fields
: ObjectCustom fields that RestJS uses to pick up on properties needed.
id
: String The property that RestJS should use as the id. This will be used for subsequent requests, such as DELETE, PUT or PATCH requests: <baseUrl>/<resource>/<id field>
headers
: String[String[]]An array of headers to send for the request. The headers must be an array, with each element containing an array, with the first element being the header name and the second the header value.
Rest.Config.set(
{
headers: [
['X-Requested-With': 'RestJ']
]
}
)
See XMLHttpRequest.setRequestHeader()
responseType
: StringThe type of the response. See XMLHttpRequest.responseType
timeout
: IntegerThe timeout setting for XHR requests. See XMLHttpRequest.timeout
withCredentials
: Booleanwhether to send CORS credentials with the request or not. See XMLHttpRequest.withCredentials
Run npm install
to install all the build tools. src/rest.js
contains all the source code. Run npm run build
to run Babel to compile for the browser.
RestJS uses Karma, Mocha, and Chai for running tests.
Run local tests with npm run unit
. Running npm run test
will first lint the files, then run all the tests on Sauce Labs using karma-sauce-launcher.
All docs are written using the JSDoc syntax.