Sinatra Rack 中間件

2023-12-20 15:43 更新

Sinatra 依靠 Rack, 一個(gè)面向 Ruby web 框架的最小標(biāo)準(zhǔn)接口。Rack 的一個(gè)最有趣的面向應(yīng)用開發(fā)者的能力是支持“中間件”——坐落在服務(wù)器和你的應(yīng)用之間,監(jiān)視 并/或 操作 HTTP 請求/響應(yīng)以 提供多樣類型的常用功能。

Sinatra 讓建立 Rack 中間件管道異常簡單,通過頂層的 use 方法:

require 'sinatra'
require 'my_custom_middleware'

use Rack::Lint
use MyCustomMiddleware

get '/hello' do
  'Hello World'
end

use 的語義和在 Rack::Builder DSL(在 rack 文件中最頻繁使用) 中定義的完全一樣。例如,use 方法接受 多個(gè)/可變 參數(shù),包括代碼塊:

use Rack::Auth::Basic do |username, password|
  username == 'admin' && password == 'secret'
end

Rack 中分布有多樣的標(biāo)準(zhǔn)中間件,針對日志,調(diào)試,URL 路由,認(rèn)證和 session 處理。Sinatra 會自動使用這里面的大部分組件,所以你一般不需要顯示地 use 他們。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號