使用JavaScript进行服务器端WebAPI开发
使用脚本开发应用程序有非常高的开发效率,在最新的JDK8中不但有原来的java命令执行java程序,还新加了一个jjs命令用来执行JavaScript程序,JDK8刚发布不久,基于jjs它开发的项目还非常少,这里特别介绍hijk项目,同时大家可以了解下jjs的实用性.
hijk 是一个自动化的WebAPI开发包,因为是自动化开发包,所以使用非常简单
基本用法:
新建一个javascript文件,写入两个HelloWorld
hijk.api.helloworld = function() { return "Hello World!"; }; hijk.api.helloworld2 = function() { return {MSG: 'Hello World!'}; };
然后把文件复制到 ./js/ 目录,这两个javascript函数就会自动加载为WebAPI, 直接支持json。hijk是基于文件目录管理各模块的工具包,同时支持在线编写代码 http://localhost:8080/edit/js/demo.js
WebAPI中取参数跟操作普通json对象一样简单
hijk.api.get = function(map, request) { var msg = { url: request.getRequestURI(), id : map.id[0], name: map.name[0] }; return msg; };
定义数据库完全用javascript, 工具包会自动创建数据库表。
hijk.table.table1 = { data: {"id": 0, "name": ""}, key: ["id"], index: [["name"]] };
操作数据库也是javascript标准语法, 非常直观易于理解.
hijk.api.table1_insert = function() { var tid = hijk.db.id(); var v = { id: tid, name: "name" + tid, fieldA: "fieldA" + tid, fieldB: "fieldB" + tid }; if (hijk.db.insert("table1", v)) { return tid; } else { return -1; } }; hijk.api.table1_select_sum = function() { var r = 0; hijk.db.select("from table1", [], function(v) { r += v.id; return true; }); return r; };
上面的javascript代码都是只需要复制到 ./js/ 目录就会自动加载为WebAPI. 可以使用外部应用程序或者普通html配合调用WebAPI.hijk工具包带有一个Web服务器,只需要把html页面复制到 ./html/ 目录就能用http访问,也可以使用 http://localhost:8080/edit/html/index.html 在线编辑html
<html> <script type="text/javascript"> function hello() { var req = new XMLHttpRequest(); req.open("GET", "/api/helloworld2", true); req.onreadystatechange = function() { if (req.readyState === 4 && req.status === 200) { var o = eval("(" + req.responseText + ")"); alert(o.MSG); } }; req.send(); } </script> <body > <p> <img id="img1" src="" alt="" onclick="hello();"></p> </body> </html>
hijk开发包使用了JavaScript的简易性,几行代码就能完成复杂的功能,可以自由修改扩展。扩展包复制到./kits/目录下,使用 jjs build.js 就会自动加入到运行命令中。与node.js不同, hijk是一个高层应用开发包,无须关注底层的各种异步机制。