sarala-karro
v0.5.0
Published
Javascript library to communicate with RESTful API built following JSON API specification. inspired by Laravel’s Eloquent.
Downloads
25
Maintainers
Readme
Sarala JS
Javascript library to communicate with RESTful API built following JSON API specification. inspired by Laravel’s Eloquent
API Documentation | Background Story
Install
$ npm i sarala --save
$ yarn add sarala
Basic Usage
Model Implementation
app/models/BaseModel.js
import { Model } from 'sarala';
import axios from 'axios';
export default class BaseModel extends Model
{
baseUrl () {
return 'https://sarala-demo.app/api';
}
request (config) {
return axios.request(config);
}
}
app/models/Post.js
import Model from './BaseModel';
import Tag from './Tag';
export default class Post extends Model {
resourceName () {
return 'posts';
}
fields () {
return ['title', 'subtitle', 'body', 'slug'];
}
relationships () {
return {
tags: new Tag()
};
}
}
app/models/Tag.js
import Model from './BaseModel';
export default class Tag extends Model {
resourceName () {
return 'tags';
}
fields () {
return ['name'];
}
}
Fetching data
import Post from './../models/Post';
const post = new Post();
// makes a GET request to https://sarala-demo.app/api/posts
const fetchAllPosts = async () => {
let posts = await post.with(['tags']).all();
};
Insert
app/components/MyComponent.js
import Tag from './../models/Tag';
const tag = new Tag();
tag.name = 'json-api';
// makes a POST request to https://sarala-demo.app/api/tags
tag.save();
// or you can directly call tag.create();
Change log
Please see CHANGELOG for more information on what has changed recently.