博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后端程序员之路 23、一个c++的api framework
阅读量:5169 次
发布时间:2019-06-13

本文共 860 字,大约阅读时间需要 2 分钟。

在"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.htm

webapi的设计关键点总结:

1、controller、requst、response、handler等常规的面向对象原则
2、数据的进出要能方便的进行序列化和加解密处理
3、handler在处理时,支持分层和分处理器,做到支持aop和处理器重用
4、支持处理链的配置化,来实现分流和ABTest

具体系统的api处理流程:

1、初始化framework,注册chain_handler、register_request_rewriter、register_url_mapping
2、客户端发起请求,根据url_mapping找到对应chain_handler
3、根据chain_handler对应的request_rewriter,对请求进行一定的预处理,包括根据配置文件使用不同的chain来实现分流和ABTest
4、根据预处理得到的chain name,从chain_factory取到对应的chain,chain包含一系列processor和renderer
5、按顺序执行processor,processor里可以动态的call_next_processor,来实现wrapper功能
6、处理完成后,调用不同renderer来实现序列化成json等功能,返回给客户端

 

转载于:https://www.cnblogs.com/zapline/p/6627545.html

你可能感兴趣的文章
docfx (一)
查看>>
HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
查看>>
深度学习之前馈神经网络(前向传播和误差反向传播)
查看>>
IEnumerable<T>和IQueryable<T>区别
查看>>
(转)MFC界面风格
查看>>
Centos7 tmux1.6 安装
查看>>
二叉树(三)
查看>>
linux加密文件系统 fsck 无法修复一例
查看>>
【linux配置】VMware安装Redhat6.5
查看>>
AI自主决策——有限状态机
查看>>
Python装饰器学习笔记
查看>>
iframe父子窗口取值
查看>>
利用Python进行数据分析_Pandas_数据结构
查看>>
2018-2019 2 20175230《Java程序设计》第九周学习总结
查看>>
python3中sum
查看>>
spring声明式事务管理
查看>>
JavaScript高阶函数(Heigher-order function)
查看>>
《计算机组成原理》第6章:总线
查看>>
Nginx的反向代理的配置
查看>>
JAVA之单例模式
查看>>