GETとPOSTの違いは?
GETはデータを「取得」するためのメソッド。パラメータはURLのクエリ文字列に含まれる。POSTはデータを「送信・作成」するためのメソッド。パラメータはリクエストボディに含まれる。GETはキャッシュされるし、ブラウザの履歴にURLが残る。POSTはキャッシュされないし、パスワード等の秘密情報はPOSTで送るべきだよ
PUTとPATCHの違いは?
PUTはリソース全体を置き換える。ユーザー情報を更新する場合、名前もメールも年齢も全フィールドを送る。PATCHはリソースの一部だけ更新する。名前だけ変更したいなら名前だけ送ればOK。実務ではPATCHの方が帯域効率が良くて使いやすいけど、PUTの方がシンプルで冪等性が保証しやすいよ
冪等性って何?
同じリクエストを何回送っても結果が同じになる性質。GET(何度取得しても同じ)、PUT(同じデータで何度更新しても同じ状態)、DELETE(存在しないリソースの削除は無害)は冪等。POSTは冪等じゃない(何度送ると何度もリソースが作られる)。冪等性はリトライ時の安全性に直結するから重要だよ
REST APIとHTTPメソッドの関係は?
RESTful APIはHTTPメソッドでCRUD操作を表現する。GET /users(一覧取得)、GET /users/1(1件取得)、POST /users(作成)、PUT /users/1(更新)、DELETE /users/1(削除)。URLは「名詞」、メソッドは「動詞」。GET /getUser/1のように動詞をURLに含めるのはRESTful的にはNGだよ