最近体验了github上非常火爆的synth框架 , 这是一款node.js为API开发设计框架,特别适合现在的前后端分离项目,大概有下面几个特点
1. 非常非常快速创建api,不需要自己定义路由,用synth你只需要创建文件夹
2. 能够在页面加载时,预加载数据
3. 提供了全套 新建项目,开发,发布 全周期工具,包括代码架子,自动watch,发布压缩合并,改名等等。
在api设计方面他依靠文件目录结构,非常的直观简单。synthApi会自动扫描resources下得所有js或coffee文件,自动生成与文件路径匹配的express路由,如果你需要定义api: api/topic,则按以下路径创建文件
| resources
| topic
| xxx.(js|coffee)
同理如果定义api: api/topic/comment,文件路径如下
| resources
| topic
| comment
| xxx.(js|coffee)
api也非常简单,在对应js中实现规则命名的方法即可,方法命名规则 exports.[HTTP方法名(get,put,delete,post)][动作名(可选)]
只有方法名等于get,put,delete,会要求带id,其他的任何方法(例如:getTopics,putAnything…)都不接收path中的id,如果你需要使用可以通过query中传入。
get : exports.get
eg : /api/topic/1
put : exports.put
eg : /api/topic/1
delete : exports.delete
eg : /api/topic/1
post : exports.post
eg : /api/topic
get : exports.getTopics
eg : /api/topic
delete : exports.deleteXXXXX
eg : /api/topic?id=1
更多的教程,文档可以参考官网
我自己尝试synth + avos cloud做了一个demo,代码:https://github.com/ariesjia/synth-demo ,地址:http://synthjs.herokuapp.com
个人认为synth其实是一个聚合,组合了express ,gulp,bower等,提供更加快速,便捷,标准的开发实践。
目前synth还出于非正式版,还是有一些缺陷,比如deploy的脚本无法自定义,需要添加额外的task只能修改框架代码,但是总的来说是相当不错,有兴趣的朋友赶紧来体验这个小清新的框架。