我编写了一个路由器,获取请求的路径,将其与正则表达式匹配,并调用WSGI处理程序(如果regex匹配)。将具有匹配捕获组的dict添加到环境中。用WSGI中间件修改环境是不是不好?在
但这就是WSGI中间件被发明的目的吗?我刚刚读了WSGI Middleware Considered Harmful,想知道是否应该重写路由器使其不再是中间件。如果应用程序使用dict来捕获组,它就会依赖于我的中间件。另一方面,没有应用程序必须使用这个额外的dict。我也可以放弃路径参数提取,将路由器减少到路由,但是每个应用程序都必须再次运行regex来提取路径参数。在
所以该怎么办:
environ
操作
如果您向环境中添加一些东西,然后在应用程序中使用这些东西,而没有任何回退,那么您必须在某种程度上将应用程序绑定到中间件。在
在这个特定的例子中,有一个关于如何将这些捕获的值添加到环境中的约定:wsgiorg.routing_args。因此,当您将引用这个捕获到您的应用程序中时,它并不是一个完全的即席通信。在
(尽管您肯定会过度使用中间件,但我认为这篇文章夸大了这种情况;中间件可以是一个很好的抽象,可以单独考虑、实现和测试应用程序的不同部分,即使最初这些部分是由一个人为一个单一目标而实现的)
相关问题 更多 >
编程相关推荐