哪个http状态代码返回404或422?

dri*_*nor 6 rest ruby-on-rails http

我有一个带有下一个资源的Rails API应用程序:/images.所有图像都有一个owner.

要创建新图像,我接下来请求/ images:

image_info = { owner_id: '1234', name: 'img1' }

post :create, :format => "json", :image => @image_info
Run Code Online (Sandbox Code Playgroud)

在图像控制器中我做:

owner = User.find( params[:owner_id] )
Run Code Online (Sandbox Code Playgroud)

如果owner_id不存在或无效,后端应返回什么错误代码,404或422 owner_id: invalid

Leo*_*lán 6

更新 我再次阅读,我将更改我的答案,422因为你无法完成处理请求.不可处理的实体是一个更好的匹配,你没有请求一个对象,所以"找不到"没有多大意义.最后是你的选择,只需选择对你感觉更好的东西.

422不可处理的实体(WebDAV; RFC 4918)请求格式正确但由于语义错误而无法遵循

资料来源:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error