Package Exports
- fake-json-api-server
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fake-json-api-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Fake JSON-api server
Simple json-api server running on client. Intercepts client XHR requests for defined routes. Useful for test runners and setting up fake backend api server for client applications.
Fake json api server processes data per json:api specification. It can be easily configured to handle (paginated) get, post, put and delete requests for user defined resources. Define dataset, filters and validation rules for each entity. Loaded dataset can be persisted to localStorage.
Examples and api
Create fake server instance with configuration object.
new FakeJsonApiServer({
baseApiUrl: '/api',
resources: {
tag: {
data: [{
type: 'tag',
id: '1',
attributes: {title: 'Tag 1'}},
{
type: 'tag',
id: '2',
attributes: {title: 'Tag 2'}
}]
}
}
});
$.get('/api/tag', function(tagList) {
// process tags json:api formatted data
});
$.get('/api/tag/1', function(tagData) {
// process api data of tag with id 1
});Persisting data to localStorage, setting up filters and validation rules for post and put request can be defined like so:
new FakeJsonApiServer({
baseApiUrl: '/api',
storageKey: 'fakeServerStorage',
resources: {
article: {
filters: {
title: function(title, query) {
return title.toLowerCase().indexOf(query.toLowerCase()) >= 0;
}
},
validationRules: {
title: {
rule: function(title) {
return title.length > 0;
},
message: 'Please enter title.'
}
},
data: function(random) {
return _.chain(_.range(1, 9)).map(function(index) {
return {
type: 'article',
id: String(index),
attributes: {
title: 'Article title ' + index,
leadTitle: 'Article lead title ' + index,
published: random.boolean()
},
relationships: {
author: {data: {id: random.id(1, 5), type: 'user'}},
tags: {
data: [
{id: random.id(1, 5), type: 'tag'},
{id: random.id(6, 10), type: 'tag'},
{id: random.id(1, 10), type: 'tag'}
]
}
}
};
}).value();
}
}
}
});Installation
FakeJsonApiServer is packaged as UMD library so you can use it in CommonJS and AMD environment or with browser globals.
npm install fake-json-api-server --save// with bundlers
var FakeJsonApiServer = require('fake-json-api-server');
// with browser globals
var FakeJsonApiServer = window.FakeJsonApiServer;