UNPKG

apinode

Version:

An API server that can greatly reduce the work needed to implment API services. It can also cooperate with other API node to make it a mesh of services.

44 lines (33 loc) 2.09 kB
apinode ------- An API server which can greatly reduce the work when implementing your own API services. ## Get Started It's quite easy to set up your own API server using **apinode**. Below is a sample code: var apiNode = require('apinode'); var config = { appPath: "...", logDir: "..." }; apiNode.init( config ); apiNode.restart(); Yes, it's that simple. You initialize **apinode** with a config object, and set sail of it. The configuration usually has at least two properties: the "appPath" property specifying where is your application code and the "logDir" specifying the log directory where **apinode** will dump its output log. ## Write Your Own Service To start with, let's depict the file structure of a typical **apinode** project: + lib + app + _api + app_1 + resource_1 + op_1 + op_2 + resource_2 + ... + app_2 + ... app_n The enpoints served by **apinode** are formulated as app/resource/op. For example, admin/user/login is a built-in service endpoint of **apinode**. If you want to create an endpoint as blog/article/list, you should create a listOp.js file under the lib/app/blog/article directory. ### The Operator The actual API services should be provided by operators. An operator is a node module which should be saved in the lib/app/your_app/your_resource directory so it can be found and invoked by **apinode**. An operator should at least define a run() function to offer the intended service. Below is a very simple example: exports.fun = function(rt, cb) { this.answerOk('Hello There!', cb); } The **rt** parameter carries the run-time environment and **cb** is the callback function to indicate an operator has finished its job. Since this is a very short introduction, we'll not touch too many ground. The **apinode** module itself contains a built-in app called "admin" which is under the lib/app/admin direcoty. You can browse through that direcoty and find quite a few operator examples.