オブジェクトを破棄できるAPIがあります。レコードが破棄された後、どのJSONをレンダリングする必要があるのか、よくわかりません。ここにいくつかのオプションがありますが、これのためのベストプラクティスが何かはわかりません。
バージョン1:
204ステータスの空のオブジェクトを返す
def destroy
item = current_user.current_cart.items.find(params[:id])
item.destroy
render json: {}, status: :no_content
end
バージョン2:
破壊されていても返品する
def destroy
item = current_user.current_cart.items.find(params[:id])
item.destroy
render json: item
end
これらの1つは他よりも優先されますか?私はそれが好まれるかもしれないと考えていないバージョンがありますか?
削除リクエストの場合、httpステータスコード200または204は、リソースが正常に削除されたことを意味します。
9.7削除
成功した応答は、応答にステータスを説明するエンティティが含まれている場合は200(OK)、アクションがまだ実行されていない場合は202(承諾済み)、アクションが実行されているが応答に含まれていない場合は204(コンテンツなし)であるべきです(SHOULD)。エンティティ。
したがって、200のステータスコードでオブジェクトを返すか、204のステータスコードで空の応答を返すことができます。
成功ステータス204(コンテンツなし)が適切と思われます。 204で暗示されているように、レスポンスボディがあってはなりません。 またはもう少しキャッチー:render :nothing, status: :no_content
def destroy
item.destroy
head :no_content
end
編集:render :nothing
は非推奨となり、Rails 5.1以降では削除されました。代わりにrender body: nil, status: :no_content
。