Виноград: используя ошибку! и виноград::Middleware после обратного вызова
В Grape, если вы используете ошибку! метод выдаст ошибку и никогда не вызовет обратный вызов Grape::Endpoint.
Я хотел бы, чтобы приложение вызывало после ошибки, когда ошибка! был вызван.
Я добавил этот промежуточный компонент, чтобы это произошло.
class AfterFailure < Grape::Middleware::Base
def call!(env)
@env = env
before
error = catch (:error) do
@app_response = @app.call(@env)
return after || @app_response
end
after_failure(error) || throw(:error, error)
end
def after_failure(error)
puts "After Failure"
nil
end
end
Есть ли лучший способ сделать это?
Спасибо
1 ответ
Просто вставьте ваше промежуточное ПО до того, как Grape::Middleware::Error
class YourApi < Grape::API
insert_before Grape::Middleware, AfterFailure
# your api code...
end
тогда вы можете получить ответ об ошибке от @app_response