带有状态代码的葡萄自定义错误
Grape custom error with status code
您好,我现在正在与 Grape 合作 rails 项目
基本上我想用葡萄做一个自定义错误,因为它受支持。
我设法创建了自定义错误,类似这样
module API
module ErrorFormatter
def self.call(message, backtrace, options, env)
{ :response_type => 'error', :details => message }.to_json
end
end
end
它工作正常,但是如果我想在它上面添加更多详细信息怎么办,比如我们葡萄 send/we 手动传递方法 error!
的状态代码,这样它就会有状态代码json.
可能是这样的
{ :status_code: *status_code_here*, :response_type => 'error', :details => message }
如何设置 status_code_here
的值
已编辑
这在 base/root 中用于葡萄
class Base < Grape::API
format :json
error_formatter :json, API::ErrorFormatter
mount API::V1::Base
end
所以这意味着现在我正在使用自定义错误而不是葡萄的预定义错误。
据我所知,此自定义错误将以两种方式调用:
- 当你发送一个丢失的参数时,Grape 会自动使用这个
API 您将参数设置为
requires
- 当您显式调用
error!()
方法时 https://github.com/intridea/grape#raising-exceptions
有什么帮助吗?
谢谢
状态代码嵌入在机架环境中。
您可以通过以下方式获取:
env['api.endpoint'].status
所以你的方法的主体是:
{ :status_code: env['api.endpoint'].status, :response_type => 'error', :details => message }
您好,我现在正在与 Grape 合作 rails 项目 基本上我想用葡萄做一个自定义错误,因为它受支持。 我设法创建了自定义错误,类似这样
module API
module ErrorFormatter
def self.call(message, backtrace, options, env)
{ :response_type => 'error', :details => message }.to_json
end
end
end
它工作正常,但是如果我想在它上面添加更多详细信息怎么办,比如我们葡萄 send/we 手动传递方法 error!
的状态代码,这样它就会有状态代码json.
可能是这样的
{ :status_code: *status_code_here*, :response_type => 'error', :details => message }
如何设置 status_code_here
的值已编辑
这在 base/root 中用于葡萄
class Base < Grape::API
format :json
error_formatter :json, API::ErrorFormatter
mount API::V1::Base
end
所以这意味着现在我正在使用自定义错误而不是葡萄的预定义错误。 据我所知,此自定义错误将以两种方式调用:
- 当你发送一个丢失的参数时,Grape 会自动使用这个
API 您将参数设置为
requires
- 当您显式调用
error!()
方法时 https://github.com/intridea/grape#raising-exceptions
有什么帮助吗?
谢谢
状态代码嵌入在机架环境中。
您可以通过以下方式获取:
env['api.endpoint'].status
所以你的方法的主体是:
{ :status_code: env['api.endpoint'].status, :response_type => 'error', :details => message }