Mjs
Mjs (from Model from MVC) is a lightweight data layer for consuming a REST API. This library can be included in a micro framework or you can just simply throw it in your project and it will work. By lightweight it means it supports minimal CRUD interaction.
Version
0.3
How it works
Mjs depends on an adapter. Out of the box it comes with a JSON Ajax adapter. In the future I hope I will offer more adapters out of the box.
Here's a simple example:
M; var book = "books" 1; // book is a modelvar books = "books"; // books is a collection of book models // You can access the models attributes by the attr keybookattrtitle = 'My new book title'; // You can modify any attributebookattrauthor = 'John Doe'; // After your are done editing, you can update it!// at this point a PUT request has been made and the DB is updated via the// REST APIbook;
REST
For the above example, suppose we have the book and books model and collection. For these we have the following actions with their urls:
Action | Method | URL | Returns |
---|---|---|---|
new M('books', 1) | GET | /books/:id | Model |
new M('books') | GET | /books | Collection |
book.update() | PUT | /boosk/:id | Model |
M.Create() | POST | /books | Model |
book.delete() | DELETE | /books/:id | NULL |
Methods
Use a loaded adapter
M;
Search for the book model with the id 1
Note: This method only searches in the cache. If you fetched the book collection then all books are cached so you can access any of them whenever you want in your app.
M;
Same as find but you search for a collection
M;
Creates a new Model with the given attributes
M
Installation
You need bower installed globally:
$ bower install m-js
Adapters
Mjs supports multiple adapters but only one can be used at a time (for now). When you include an adapter into your application, the adapter becomes available via the:
Madapters
by default Mjs comes with the JSON
adapter which is described below.
JSON AJAX Adapter
To intereact with your API via AJAX you ca use the JSON adapter. To use this adapter you simply call this method to let know Mjs that you wish to use this adapter for all your CRUD operations:
M;
After this method is called you will have access to the adapter via this object:
Madapter
This adapter is based on the XMLHTTPRequest object. You can call it a wrapper over XHR. It simply implements 3 methods (for now) for interacting with AJAX requests. This adapter can pe accessed via the: The methods offered are:
Madapter;
Madapter;
Madapter;
Note: The data parameter is optional and used only when sending POST or PUT requests
The callback setters (onDone, onFail
) returns the adapter object so you can chain them like you do with $.ajax
from jQuery.
In the near future I would like to add a better error suport for the onFail
setter and add more setters like:
onComplete
onAlways
beforeSend
- etc.
Todo's
- Offer more adapters
- Mocking
- Tests
License
MIT