Skip to content

Instantly share code, notes, and snippets.

@himanawani
Last active December 10, 2015 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save himanawani/0b33c01bc402b8a576a1 to your computer and use it in GitHub Desktop.
Save himanawani/0b33c01bc402b8a576a1 to your computer and use it in GitHub Desktop.
RESTfulとは

RESTful

RESTとは

  • REpresentational State Transfer の略
    • Webのアーキテクチャスタイル(設計思想)の1つ
  • 自分達が作るWebサービスやWebAPIは、Webを構成する1種
  • Webの1部である以上、Webの設計思想であるRESTの制約に従うことによってより良くなる
  • パラメータを指定する
  • 特定のURLにHTTPでアクセス
  • XMLで記述されたメッセージが返ってくる
  • システムの状態やセッションに依存しない

RESTfulとは

  • RESTの規約に従った、RESTらしいWebサービス
  • RESTfulなWebサービス
    • Yahoo!
    • Google
    • facebook
    • twitter

RESTのメリット

  • アプリケーション中のリソースが、URIで示せる
    • アドレス欄に入力すれば、そのリソースを参照できる
  • ステートレスにすることで、スケーラビリティが向上する
    • 将来想定されるシステム規模の増大に対応可能な設計
    • RESTの1番のメリットとされる部分
  • 統一インターフェース
    • シンプルで一貫性のある設定
    • リソースへの操作はCRUDの4種類という制約
  • メソッドを限定することによりプロトコルがシンプルに保たれる
  • 標準的なデータフォーマット(XMLとJSON)を扱うことで、他のシステムとの連携が容易になる
  • RESTに基づいたWebアプリでは、インターフェースが固定されている為、互換性の問題が発生しない

リソース指向

  • Web上に依存する全ての情報はリソースである
  • リソースは識別子(URI)を持つ
  • URIを用いることでプログラムはリソースはリソースを表現する情報にアクセス出来る
  • ディレクトリ構造に似たURIを定義
  • リソースの状態
    • 時間や条件とともに変化する可能性があるのでなるべく永続的にアクセスできるようにするべき
  • リソースの意味
    • 時間や条件が変化しても不変

統一インターフェース

  • URIで指し示されるリソースに、GETやPOSTなどのHTTPメソッドを適応する
  • HTTP1.1ではGETやPOSTなど、8個のメソッドだけが定義されている
  • 代表的なHTTPのメソッドとその役割
メソッド 役割
GET リソースの取得(読み込み)
POST リソースの新規作成
PUT 既存リソースの更新
DELETE リソースの削除
  • 1番良く利用されるのは、GETとPOST
    • HTMLのフォームで指定出来るメソッドが、この2つだけで制限されているため
  • GETでのアクセスはリソースの内容に影響を与えない
  • 新しいURIを作成するときだけPOSTを使用する
    • 子リソースの作成
    • リソースへのデータ追加
  • 全てのWebシステムでのURIとHTTPメソッドという同じインターフェースを利用する
  • このスタイルのことを統一インターンシップと呼ぶ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment