Socket
Book a DemoInstallSign in
Socket

fake-json-api-server

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fake-json-api-server

Simple json-api server running on client. Useful for test runners and setting up fake backend api server for client applications.

Source
npmnpm
Version
1.1.0
Version published
Weekly downloads
73
-20.65%
Maintainers
1
Weekly downloads
 
Created
Source

Fake JSON-api server

Build Status Coverage Status NPM Status

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.

Visit documentation site.

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;

Keywords

fake

FAQs

Package last updated on 26 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts