Привет, я сейчас работаю над проектом rails с Grape. По сути, я хочу сделать пользовательскую ошибку с Grape, поскольку она поддерживается. Мне удалось создать пользовательскую ошибку, что-то вроде этого
module API
module ErrorFormatter
def self.call(message, backtrace, options, env)
{ :response_type => 'error', :details => message }.to_json
end
end
end
он работает нормально, но что, если я хочу добавить больше деталей, например, код состояния, который мы отправляем/передаем вручную методу error!
, чтобы он имел код состояния в json.
это может быть что-то вроде этого
{ :status_code: *status_code_here*, :response_type => 'error', :details => message }
Как установить значение для status_code_here
ОТРЕДАКТИРОВАНО
Это в основе / корне для винограда
class Base < Grape::API
format :json
error_formatter :json, API::ErrorFormatter
mount API::V1::Base
end
Так что это означает, что теперь я использую пользовательскую ошибку вместо предопределенной ошибки винограда. Насколько я знаю, эта пользовательская ошибка будет вызываться двумя способами:
- Grape автоматически использует это, когда вы отправляете отсутствующий параметр в API, который вы помещаете в качестве параметра как
requires
- Когда вы явно вызываете метод
error!()
следующим образом: исключения
Любая помощь?
Спасибо