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

  • 相关阅读:
    css实现自适应正方形
    遇到稍微复杂的场景发现css功力不足
    聊聊缓存
    git学习笔记
    font-size:0的作用
    移动端高清屏适配方案
    react生命周期
    javascript写定时器
    js判断字符串是否以某个字符串开头和js分解字符串
    json.parse()和json.stringify()
  • 原文地址:https://www.cnblogs.com/zapline/p/6627545.html
Copyright © 2011-2022 走看看