在"21、一个cgi的c++封装"中,我们封装了cgi,在这之上,我们可以再来封装一个webapi的framework。当然,前文的Casablanca是个不错的选择,但是它比较庞大,而且缺少一些业务上需要的功能。
Web API应用架构设计分析(1) - 伍华聪 - 博客园
http://www.cnblogs.com/wuhuacong/p/4614875.html面向对象的WebAPI框架XXL-HEX - 许雪里 - 博客园
http://www.cnblogs.com/xuxueli/p/5003305.htmwebapi的设计关键点总结:
1、controller、requst、response、handler等常规的面向对象原则2、数据的进出要能方便的进行序列化和加解密处理3、handler在处理时,支持分层和分处理器,做到支持aop和处理器重用4、支持处理链的配置化,来实现分流和ABTest具体系统的api处理流程:
1、初始化framework,注册chain_handler、register_request_rewriter、register_url_mapping2、客户端发起请求,根据url_mapping找到对应chain_handler3、根据chain_handler对应的request_rewriter,对请求进行一定的预处理,包括根据配置文件使用不同的chain来实现分流和ABTest4、根据预处理得到的chain name,从chain_factory取到对应的chain,chain包含一系列processor和renderer5、按顺序执行processor,processor里可以动态的call_next_processor,来实现wrapper功能6、处理完成后,调用不同renderer来实现序列化成json等功能,返回给客户端