[英]Combine Rack::Builder and Rack::Cascade
抱歉,這個問題是另一個問題的重復,但是我還沒有找到。
我有一些Grape API(Rack應用程序),其中一個(用戶API)使用中間件進行身份驗證。
在我的config.ru文件中,我通過Rack :: Cascade將所有API組合到一個應用程序中。 這是代碼:
user_management = Rack::Builder.new {
use Middleware
run UserAPI.new
}
app = Rack::Cascade.new [
user_management,
ExampleAPI1,
ExampleAPI2,
ExampleAPI3
]
問題在於,每當任何一個API獲得請求時,都會調用中間件。
僅在用戶API收到請求時,有人對如何使用中間件有任何建議嗎?
這個問題的答案是我必須從API中刪除資源(例如resource:user),然后按如下所示使用Rack :: Builder:
app = Rack::Builder.new {
map '/user' do
use Middleware
run ExampleAPI1
end
map '/items' do
run ExampleAPI2
end
map '/locations' do
run ExampleAPI3
end
map '/reports' do
run ExampleAPI4
end
}
Rack :: Cascade的問題在於,它會嘗試從上到下的每個應用程序,直到找到合適的端點為止
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.