Introduction
usage
npm install wwpm
Hello Word
const wwpp = require('wwpp');
wwpp('./schema/','./webroot/').then(app =>app.start())
Definition Spec
a) Shared Common Class(eg: ./schema/common.js)
//common struct difinition(first char is upper case!)exportsProduct =id: type: "integer" //define a integer typename: type: "string" //define a string typeprovider://define a ref object type$ref:"common#ProductProvider"price:type: "number"//define a float typeminimum: 0exclusiveMinimum: trueexportsProductProvider =id: type: "integer"name: type: "string"tel: type: "string"email: type: "string"
b) Resource Interface Define
- struct
exports.path = "/product/:id"
exports.get = {
schema:{
request:{...},//request data json schema definition
response:{...},//response data json schema definition
},
action:function(req,resp){//process action function
....
}
}
- eg:./schema/product.js
//resource interface difinition//path is required, and any http methods:get ,post,delete....exportspath = "/product/:id"exportsget =schema:request:id:type:'integer'//ignore input define,got from routerresponse:value:ref:'common#Product'error:type:'integer'optional:true{thisvalue = {...}return '/product.xhtml'}exportspost=schema:request:ref:'common#Product'response:error:type:'integer'optional:true{await//no view returend and model(this) is stringify as json}
Codegen
npm install wwpm -g
wwgen -s ./schema/ -o ./output -ns com.example