gpt4 book ai didi

ruby - 结合 Rack::Builder 和 Rack::Cascade

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:58 25 4
gpt4 key购买 nike

很抱歉,如果这个问题与另一个问题重复,但我还没有找到它。

我有一些 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 的问题在于它会从上到下尝试每个应用程序,直到找到合适的端点

关于ruby - 结合 Rack::Builder 和 Rack::Cascade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com