Express JSON:API Controller

Base controller class for express apps to create JSON:API endpoints for sequelize models

Installation

1
yarn add @coding-blocks/express-jsonapi-controller

Usage

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// import your sequelize models
const DB = require('./models')

// import serializer for your model
const UserSerializer = require('./serializers/user')

// Get the controller
const { Controller } = require('express-jsonapi-controller')
const MyController = new Controller(
DB.User, // Model you want to create controller instance for
DB, // Models import for getting related models
UserSerializer
)

// Create your endpoints
router.get('/', MyController.handleQuery)

Creating Serializers

We use jsonapi-serializer for serializing models

1
2
3
4
5
6
7
8
9
10
11
12
/*
export a function with following arguments
@params [included] included models config
@params [type] serialize or deserialize
@params [config] meta config
*/
module.exports = (included, type, config) => {
return {
attributes: ['firstName', 'lastName'],
...config
};
};

Available Methods

  • ```
    1
    - ``` Controller.handleQueryById()
  • ```
    1
    - ``` Controller.handleDeleteById()