俗话说:善有善报,恶有恶报;话又说:人善被人欺,马善被人骑!古今论坛,后人总结生存言谈:拥有善良之心待人,不向恶势力低头屈身。愿你吸收生存之道,日子过得美满逍遥!
oslo.middleware库可以添加在WSGI pipeline用来拦截request/response请求。其基类可以为WSGI增强功能,如添加、删除、修改HTTP头部信息,支持限制大小和连接数等。本文主要分析Oslo组件如何使用oslo.middleware来实现这些功能。
oslo.middleware中的主要pipeline
oslo.middleware中定义了多个WSGI的pipeline,如cors、request_id等。所以,本文首先总结了oslo.middleware中常用的pipeline的实现、作用以及使用场景。在oslo.middleware中,所有的pipeline的实现类都继承自一个父类ConfigurableMiddleware,其是一个基本的WSGI middleware装饰器。该类在实例化时会绑定一个WSGI应用对象APP,则该ConfigurableMiddleware对象在实际使用中便会对绑定的WSGI APP的request/response进行相应的包装。在ConfigurableMiddleware类中,分别定义了process_request(request)和process_response(response, request)方法分别对request和response进行处理。最后,该类还为paste.deploy实现了factory方法,使其可以通过读取WSGI配置文件调用相关类的装饰器。了解了ConfigurableMiddleware类的实现之后,下面便可以根据ConfigurableMiddleware类的实现针对具体的pipeline的实现进行详细的解读。