TECHNICAL BLOG

2019/7/25 # 入門 # HTML 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のリソースの削除

普段何気なく使っているブラウザでサイトにアクセスした際は、実はGETで通信しています。
また、アカウントを作成したりプレゼント応募した場合は、POSTしていることが多いです。

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なのかわかりやすいと思います。