小编典典

什么是机架中间件?

all

什么是 Ruby 中的 Rack 中间件?对于“中间件”的含义,我找不到任何好的解释。


阅读 134

收藏
2022-05-05

共1个答案

小编典典

机架即设计

Rack 中间件不仅仅是“一种过滤请求和响应的方法”——它是使用Rack的 Web
服务器的管道设计模式的实现。

它非常清晰地分离了处理请求的不同阶段——关注点分离是所有设计良好的软件产品的关键目标。

例如,使用 Rack 我可以有管道的单独阶段:

  • 身份验证 :当请求到达时,用户的登录信息是否正确?如何验证此 OAuth、HTTP 基本身份验证、名称/密码?

  • 授权 :“用户是否有权执行此特定任务?”,即基于角色的安全性。

  • 缓存 :我已经处理了这个请求,我可以返回一个缓存的结果吗?

  • 装饰 :如何增强请求以使下游处理更好?

  • 性能和使用监控 :我可以从请求和响应中获得哪些统计信息?

  • 执行 :实际处理请求并提供响应。

能够分离不同的阶段(并且可以选择包括它们)对于开发结构良好的应用程序有很大帮助。

社区

还有一个围绕机架中间件开发的很棒的生态系统——您应该能够找到预先构建的机架组件来完成上述所有步骤以及更多。有关中间件列表,请参阅Rack GitHub wiki 。

什么是中间件?

中间件是一个可怕的术语,它指的是任何帮助但不直接参与执行某些任务的软件组件/库。非常常见的示例是日志记录、身份验证和其他 常见的水平处理组件
。这些往往是每个人都需要跨多个应用程序的东西,但没有太多人有兴趣(或应该)构建自己。

更多信息

2022-05-05