运维开发网

ruby-on-rails – Apipie干扰正确的错误代码

运维开发网 https://www.qedev.com 2020-07-27 13:27 出处:网络 作者:运维开发网整理
我似乎无法在Apipie的文档中找到这一点. 我准备好了这个RESTful api,我想我会用Apipie记录它.所有精细和花花公子,以及param验证都很好,但我似乎无法让它在验证失败时抛出正确的HTTP代码作为响应.例如,我有这个POST / users方法,显然在我的数据库中创建了一个用户.很好,对吧?好吧,如果出现问题,它会响应422 Unprocessable实体,那很好,但是如果我抛出
我似乎无法在Apipie的文档中找到这一点.

我准备好了这个RESTful api,我想我会用Apipie记录它.所有精细和花花公子,以及param验证都很好,但我似乎无法让它在验证失败时抛出正确的HTTP代码作为响应.例如,我有这个POST / users方法,显然在我的数据库中创建了一个用户.很好,对吧?好吧,如果出现问题,它会响应422 Unprocessable实体,那很好,但是如果我抛出那些没有通过apipie验证的参数,则会产生扼流圈并抛出一个老式的错误,这就像是

Failure/Error: post '/users.json', :user => d
Apipie::ParamInvalid:
  Invalid parameter 'email' value "": Must match regular expression /[a-zA-Z0-9\-.]+\@[a-zA-Z0-9\-.]+\.[a-z]{2,}/.
# ./spec/requests/usersapi_spec.rb:66:in `block (3 levels) in <top (required)>'

假设我对email参数进行了regexp验证.相反,我非常希望它能很好地响应(可能在json中,或者用空体),并将respose的代码设置为422.

有任何想法吗?

编辑:是的,我知道我可以禁用apipie的验证,否则就这样做……

希望你已经找到了答案 – 但是如果有人想要禁用Apipie的验证 – 这就是它.

Apipie.configure do |config|
  config.validate = false
end

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号