@kites/api

Abstract API Discovery for Kites

Stats

StarsIssuesVersionUpdatedCreatedSize
@kites/api
130.3.03 years ago3 years agoMinified + gzip package size for @kites/api in KB

Readme

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

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.