Rails API中创建或更新操作的正确HTTP方法是什么?

joh*_*ino 2 rest ruby-on-rails http ruby-on-rails-4

我正在创建一个可以在JavaScript中访问的API.我希望API的用户能够在数据库中发送请求和create_or_update记录.我应该为此请求使用POST,PUT或PATCH方法吗?

以下是可接受的还是在REST最佳实践之外?

# POST /objects
def create_or_update
  object = Object.find_or_create_by(params[:attribute])
  if object.update_attributes(object_params)
    render :json => {}, :status => :ok
  else
    render :json => {}, :status => :bad_request
  end
end
Run Code Online (Sandbox Code Playgroud)

Cou*_*per 5

恕我直言,最合适的是PUT.请参阅HTTP 1.1,第4.3.4节" PUT",它是"创建或替换".