对不起,如果这个问题是重复另一个问题,但我还没有找到它。
我有一些Grape (它们是Rack应用程序),其中一个(用户API)使用中间件进行身份验证。
在我的config.ru文件中,我通过Rack::Cascade将所有app组合到一个应用程序中。下面是代码:
user_management = Rack::Builder.new {
use Middleware
run UserAPI.new
}
app = Rack::Cascade.new [
user_management,
ExampleAPI1,
ExampleAPI2,
ExampleAPI3
]问题是,每当任何API收到请求时,都会调用中间件。
只有当用户API收到请求时,有谁有关于如何使用中间件的建议吗?
发布于 2015-03-27 11:14:28
这个问题的答案是,我必须从API中删除资源(例如,资源: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::级联的问题是,它从上到下尝试每个应用程序,直到找到合适的端点为止。
https://stackoverflow.com/questions/29244390
复制相似问题