Abstract API Discovery for Kites
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
lib
test
.editorconfig
.gitignore
.travis.yml
LICENSE
README.md
index.js
kites.config.js
package.json

README.md

kites-api

Discover API controllers for Kites

Join the chat at https://gitter.im/nodevn/kites npm version npm downloads Travis

Features

  • Auto Discover: models, services and controllers
  • Auto generate RESTful API with basic CRUD operations
  • Auto generate user-defined API actions
  • Quick access models, services via Proxy

Extension Options

  • actions: Enable auto generate controller actions, default: true
  • crud: Enable auto generate RESTful API with CURD operations on model, default: true
  • apiDirectory: Prefix RESTful API resource, default: /api
  • connection: Default connection used for model, default: memory
  • dataSource.[i].name: Datasource driver name (user defined)
  • dataSource.[i].driver: Datasource driver name for specifed adapter (eg: mongoose)
  • dataSource.[i].host: Hostname
  • dataSource.[i].port: Username
  • dataSource.[i].username: Port
  • dataSource.[i].password: Password
  • dataSource.[i].database: Database name
  • dataSource.[i].active: Allow kites connect at startup
  • dataSource.[i].pool: Connection pooling

Extension Usage

You can apply this extention manually tho kites-engine

var kites = require('@kites/engine')()
kites.use(require('@kites/api')())

Auto discover mode, just install the extension as a dependency:

npm install @kites/api

APIs and Events

  1. Access models and services
  • kites.model([model_name]) - get model has initialized
  • kites.service([service_name]) - get service has initialized
  • kites.controller([controller_name]) - get controller has initialized

Example:

// Obtain models and service by:
var userModel = kites.model('user');
var userService = kites.service('user');

// Or quick access these one via proxy
var userModel = kites.db.user
var userService = kites.sv.user
  1. Listen event model initialized
  • beforeApiConfigure: Before kites api configure
  • apiModelRegistered: All models loaded in kites system
  • apiModelInitialized: All models registered and initialized
  • apiConfigure: All models, services and controllers initialized

Example:

kites.on('apiModelInitialized', (kites) => {
    console.log(kites.models);
})

License

MIT License

Copyright (c) 2018 Nhữ Bảo Vũ

The MIT License