1.17.0 • Published 6 years ago

hapi-bookshelf-rest v1.17.0

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

hapi-bookshelf-rest

REST Full API for hapi framework based on bookshelf models

Getting Started

Installation

npm

npm install hapi-bookshelf-rest

yarn

yarn add hapi-bookshelf-rest

git

git clone https://github.com/doniyor2109/hapi-bookshelf-rest

Introduction

This plugin provides easy way to develop REST API server with few configuration. There is already built in standarts that you can use. If there is standarts that plugin does not have please issue this standart.

Configure your REST

const rest = require('hapi-bookshelf-rest');

rest(server, {
   path: '/user',
   model: BookshelfModel,
   bookshelf: bookshelf,
}).generateRoutes();

This is the basic configuration for REST API. These lines of codes provide full featured REST API for user resource. You can configure your routes with options and routeConfig.

Customize your rest route

const rest = require('hapi-bookshelf-rest');

rest(server, {
   path: '/user',
   model: BookshelfModel,
   bookshelf: bookshelf,
}).readAll({
     queryFilter: function(request) {
         return {
            id: request.auth.credentials.id,
         }
     }
}).generateRoutes();

This route is configured that whenever user requests GET /user path (readAll), user resource will be fetched with condition that id should be equal to request.auth.credentials.id. This configuration is belongs to only GET /user path (readAll).

API

rest = require('hapi-bookshelf-rest')

  • rest(server, [options], [routeConfig]) : Rest:object
    • server:object - hapi server instance
    • [options]:object - global options from configuration
    • [routeConfig]:object - global route configuration from configuration
  • Rest:object - sets configuration and options for routes
    • readOne([options], [routeConfig]) - reads one resource - GET /path/{id}
    • readAll([options], [routeConfig]) - reads all resource - GET /path
    • create([options], [routeConfig]) - creates new resource - POST /path
    • batch([options], [routeConfig]) - creates multuple resources - POST /path/batch
    • update([options], [routeConfig]) - updates resource - PUT /path/{id}
    • delete([options], [routeConfig]) - deletes resource - DELETE /path/{id}
    • generateRoutes():void - generates routes

Configuration

  • [options]:object - global options for every route
    • path:string - base path for REST API.
    • model:bookshelfModel object - resource model
    • bookshelf:BookshelfInstance object - bookshelf instance
    • [queryFilter]:function - modify query
    • [payloadFilter]:function - modify payload
    • [deny]:function - if returns true then user is not allowed to this route
  • [routeConfig]:object - global route config for every route - same as Hapi route options
    • handler:function - route handler function
    • ... .etc

1.17.0

6 years ago

1.16.12

6 years ago

1.16.11

6 years ago

1.16.10

6 years ago

1.16.9

6 years ago

1.16.8

6 years ago

1.16.7

7 years ago

1.16.6

7 years ago

1.16.5

7 years ago

1.16.4

7 years ago

1.16.3

7 years ago

1.16.2

7 years ago

1.16.1

7 years ago

1.16.0

7 years ago

1.15.3

7 years ago

1.15.2

7 years ago

1.15.1

7 years ago

1.15.0

7 years ago

1.14.2

7 years ago

1.14.1

7 years ago

1.14.0

7 years ago

1.13.0

7 years ago

1.12.0-alpha.1

7 years ago

1.12.0-alpha.0

7 years ago

1.11.0-alpha.9

7 years ago

1.11.0-alpha.8

7 years ago

1.11.0-alpha.7

7 years ago

1.11.0-alpha.6

7 years ago

1.11.0-alpha.5

7 years ago

1.11.0-alpha.4

7 years ago

1.11.0-alpha.3

7 years ago

1.11.0-alpha.2

7 years ago

1.11.0-alpha.1

7 years ago

1.10.1

7 years ago

1.7.11

7 years ago

1.7.10

7 years ago

1.7.9

7 years ago

1.7.7

7 years ago

1.7.6

7 years ago

1.3.0

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago