zoukankan      html  css  js  c++  java
  • 后端程序员之路 23、一个c++的api framework

    在"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等功能,返回给客户端

  • 相关阅读:
    IOS第一天
    Mac环境下svn的使用
    惯用代码
    ORA-12170: TNS: 连接超时
    java字符集
    java移位运算
    mysql面试题
    mysql覆盖索引(屌的狠,提高速度)
    Cannot call sendError() after the response has been committed
    maven生命周期
  • 原文地址:https://www.cnblogs.com/zapline/p/6627545.html
Copyright © 2011-2022 走看看