如果我写一个api框架
发布于 9 年前 作者 i5ting 5586 次浏览 最后一次编辑是 8 年前 来自 分享
  • 支持koa、express风格路由(便于入门)
  • 支持多种orm,目前做的都不太好
  • 生成静态api,便于测试,并且上线真实api的时候能够干掉
  • 集成deploy,类似于pm2或shipit,一键部署
  • 有较好的脚手架scaffold
  • 集成benchmark
  • 测试丰富
  • 支持restful,但不要完全像restify、hapi
  • 自动根据文档代码,生成api文档,如果能够生成压测更好
  • 提供插件机制
  • 集成开发环境,vagrant或docker
  • 提供webpact、gulp、自动reload、压缩等辅助开发
  • 集成elk类似的日志收集,作为插件
  • 集成apm或zabbix监控
  • 与api gateway集成,比如strongloop的或kong这样的
  • 集成rpc框架作为插件,支持thrift、seneca、tchanel等
  • 集成mq作为作为插件

@welefen 成银 你先看看

我暂时能想到的就这些,比较乱,有空再整理

11 回复

看起来一点都不像 精简版的功能。。。

期待,不过不能完全解决回调问题的语法,再好的框架都致命

@2881099 现在用 async/await 解决异步的方式基本已经可以接受了。

@2881099

回调问题有进步,但还没到终点,promise+generator/yield 或 async/await 在语法层面已经越来越接近同步,但跟 openresty 和 fibjs 的差距主要还是思维方式上,openresty 和 fibjs 就是用同步的思维写同步代码,而 nodejs 还要以异步的思维来写同步代码,不管是 generator/yield 还是 async/await,本质上还是基于回调的,这些东西可以算作高级 goto,运用的时候还是要时刻考虑顺序问题,这恰恰是异步编程的难点,是容易出错的地方。

@welefen 使用有限制啊,除非每个底层或者npm上的包都改成返回 promise

  1. api输入输出参数的schema definition/check/normalization
  2. 支持配置throttle
  3. api认证方式,比如集成jwt

有朋友回复:

能对源码加密,并支持授权机制,可自动更新应用新代码。

@coordcn

你说得太对了,我赞同。

@2881099 有方法可以快速将 callback 形式包装成 Promise,比如:bluebird 里的 promisify 方法,ThinkJS 里也有 think.promisify 方法 @coordcn 同步非阻塞确实更优雅一些。我觉得以后 Node.js 可能会往这方面发展,网络 IO 支持同步非阻塞的方式,文件 IO 直接修改现在同步的接口。

回到顶部