【发布时间】:2014-07-27 15:20:07
【问题描述】:
我似乎在 Apipie 的文档中找不到这一点。
我准备好了这个 RESTful api,我想我会用 Apipie 记录它。一切都很好,而且参数验证很好,但是当验证失败时,我似乎无法让它抛出正确的 HTTP 代码作为响应。例如,我有这个 POST /users 方法,显然它在我的数据库中创建了一个用户。不错,对吧?好吧,如果出现问题,它会以 422 Unprocessable entity 进行响应,这很好,但是如果我向它抛出未通过 apipie 验证的参数,apipies 会窒息并抛出一个很好的老式错误,类似于
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 参数进行了正则表达式验证。相反,我非常希望它能够很好地响应(可能是 json 或空体)并将响应的代码设置为 422。
有什么想法吗?
编辑:是的,我知道我可以禁用 apipie 的验证,否则...
【问题讨论】:
标签: ruby-on-rails api rest http-headers