2019/7 HTTPメソッドとCRUD
みなさんGETやPOST使い分けてますか?今回はビギナーさん向けにWeb開発でよく使うHTTPメソッドについて紹介します。
CRUDとは
まず、CRUDという言葉について説明します。 Web開発においてプログラムがデータベースへ行っている処理は、データの生成・読み取り・更新・削除の4機能です。 つまり、Create・Read・Update・Deleteであり、頭文字を並べCRUDと呼ばれます。
HTTPメソッドとは
HTTPメソッドとはブラウザからサーバへHTTP通信する際の通信パターンで、8種類あります。 8種類ありますが今回はWeb開発でよく使う以下の4つを紹介します。
GET | 指定したURLのリソースの取得 |
POST | 指定したURLのリソースの作成 |
PUT | 指定したURLのリソースの更新 |
DELETE | 指定したURLのリソースの削除 |
Web開発において
混同しないようと改めて説明すると
- CRUDはデータ処理の概念
- GET,POST等はHTTP通信における通信種類
と違うものですが、GET・POST・PUT・DELETEはCRUDに近いものがあるとことがわかると思います。
Webとはブラウザからサーバへの通信であるとも言えます。 この通信の中で、サーバに処理してほしいこととは端的にいうとデータに対するCRUDと言え、以下のようなユースケースで分類することができます。
- HTMLを閲覧したり、データ(JSON)を取得するGET(Read)
- アカウントを作成したり、メッセージを投稿(作成)するPOST(Create)
- アカウントの住所を変更したり、メッセージを編集するPUT(Update)
- アカウントを削除したり、メッセージを削除するDELETE(Delete)
メリット
GET・POST・PUT・DELETEを使い分けることのメリットは、データ観点から行いたいことが明瞭になりメンテナンス性が向上します。
さらに、例えばアカウントをCRUDしたい場合、
- GET: /cview.co.jp/accounts
- GET: /cview.co.jp/accounts/1
- POST: /cview.co.jp/accounts
- PUT: /cview.co.jp/accounts/1
- DELETE: /cview.co.jp/accounts/1
このようなURLパターンで端的に設計することができます。「1」というのはアカウントIDとして表現しています。ID:1のアカウントのデータやHTMLを取得したり、変更・削除を行う。アカウント作成(POST)はまだIDがないので/accounts
とする。また、/accounts
に対してGETするとアカウント一覧が取得できるという感じで表現できます。
素直に/getAccountList
や/getAccountItem
や/updateAccount
といったURLで表現することもできますが、上述のほうが何をするURLなのかわかりやすいと思います。