gpt4 book ai didi

ruby-on-rails - 如何处理 Rails REST API 中的错误或错误请求?

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:05 25 4
gpt4 key购买 nike

我有一个包含 JSON API 接口(interface)的 Rails 应用程序。正确指定值后, Controller 会很好地处理快乐路径,并将 JSON 呈现为输出。

但是,如果输入有问题,则会引发异常并呈现 rescues 中的一些模板。我真的只是想沿着 { "error": { "msg": "bad request", "params": ... } } 和适当的 HTTP 行返回一个 JSON 错误状态代码(例如,如果未通过身份验证,则为 403)。但我只希望这适用于针对 example.com/api/... 中任何内容的请求。

我该怎么做?

最佳答案

我有一个类似的案例,但我单独拯救了各个 API 方法,因为我需要特定于方法的错误,我也可以根据错误类型进行多次拯救。

在我的应用程序 Controller 中,我有一个方法:

def error(status, code, message)
render :js => {:response_type => "ERROR", :response_code => code, :message => message}.to_json, :status => status
end

然后在我的 API Controller 中

def some_method
## do stuff
rescue
error(500, method_specific_error_code, "it all done broke")
## additional error notifications here if necessary.
end

因为我挽救了错误,所以我需要显式调用 hoptoad api。

为了处理身份验证,我有一个用于 login_requiredbefore_filter

def login_required
error(403, 403, "Not Authenticated") unless authenticated
end

并挽救 404 错误:

def render_404
error(404, 404, "Unknown method")
end

希望对您有所帮助!

关于ruby-on-rails - 如何处理 Rails REST API 中的错误或错误请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3358719/

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