【今日のQ&A】RESTってなに?前編【ソフトウェア設計】

こんにちは、@codeship_techです。

今日のQ&AはRESTについてです!

明日以降も解説していきますので合わせて読んでみてください!

RESTって何ですか?

Webにおけるソフトウェア設計の共通方式です。

  •  RESTとは

  • REpresentational : 具象的な
  • State: 状態
  • Transfer: 転写

の略語ですが、言葉の見た目だけを見てもピンとこないものです。

しかしRESTは昨今のWeb通信技術に広く浸透し、RESTの考え方を元に作成された“RESTful API”を用いてWebアプリケーション開発が行われることが一般的です。

  •  1. 統一インターフェース

ほぼ全てのコンピュータには、データへのアクセスの仕方として

  1. データを新規作成する
  2. データを読む
  3. データを更新する
  4. データを削除する

の4機能が実装されています。
これらの動作を「Create, Read, Update, Delete」の頭文字から「CRUD(クラッド)」と言いますが、これらCRUDに対応したHTTPのメソッド

  • Create → POST
  • Read → GET
  • Update →PUT
  • Delete → DELETE

を使うとあらかじめ取り決めておくことで、システム全体の実装をシンプルにすることができます。

WebアプリケーションフレームワークのRuby on Railsでは、config/routes.dbに書いたルーティングのメソッド名にget, post, deleteは頻出しますが、共通のHTTPメソッドを使うという取り決めを遵守しているということですね。

  •  2. クライアント/サーバシステム

今あなたがこのブログを見ているPCは「クライアント」の役割を持ち、「サーバ」というこのブログの記事データを置いているPCに対して「記事の内容の要求(リクエスト)」を送ることで、記事を閲覧することができます。

これにより記事を見るあなたのPCであるクライアントはマルチプラットフォームに対応させられます。
この記事はPCからでもスマホからでも閲覧ができます。

また、クライアントが記事データを持ち合わせる必要がなく、サーバもまた記事データを全て溜め込んでおき、来たリクエストにあわせて記事データを提供するだけでよくなり、シンプルな設計になります。

中編はこちら
【今日のQ&A】RESTってなに?中編【ソフトウェア設計】

授業日記についてのご意見

CodeShipの授業について「こんな事が知りたい・紹介して」というご意見・ご提案がありましたら、CodeShip公式Twitterアカウント(【CodeShip】プログラミングスクール)までDMまたはリプライにてお寄せください。