はじめに
本記事は、プログラミングの学習を始めて1ヶ月の初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。
今回の疑問点
今回の疑問点は、
HTTPメソッドのPATCHとPUTの違いについて
です。
以前、テーブル定義を考えていた際に疑問を抱きました。
疑問点についての解説
結論
PATCH
:既にあるリソースの一部を上書きする。
PUT
:既にあるリソースを全て上書きする。既存リソースがない場合には作成する。
PATCH
既にあるリソースについて一部分のみ更新するメソッドです。
例えば、記事のタイトルだけを更新する、記事の本文だけを更新する等の際に使用します。
PUT
リソースが存在しているときは更新、リソースが存在しない場合は新規作成を行います。
PATCHとPUTで迷ったら
4.0より前のバージョンのRailsではPATCH
ではなくPUT
が使用されていたようですが、PATCH
の方が意図したHTTPの使用法により適しているので、新しいアプリケーションではPATCH
が推奨されているようです。
Rails4.0以降を使用している場合には、PATCH
を使用しておけば良さそうです。
まとめ
最後にポイントをまとめます。
-
PATCH
:既にあるリソースの一部を上書き、PUT
:既にあるリソースを全て上書き、既存リソースがない場合には作成 - Rails4.0以降では、より意図したHTTPの使用法に適している
PATCH
を使用することが推奨されている。