48
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RESTとは何か

Last updated at Posted at 2015-08-26

RESTには3つの意味がある。

  1. Roy Fieldingによって提唱されたアーキテクチャスタイル
  2. 複雑なSOAPに対抗して提唱された、より軽量なAPIのスタイル
    • 現在はSOAPが死滅したため、この意味で使われることは稀
  3. Rails等のフレームワークによって広められた、CRUD操作をHTTPのメソッドに対応させるスタイル

この記事では、60〜70人のエンジニアを面接して、誰一人RESTの定義を正しく答えられなかったと書かれている。
https://whizmodo.wordpress.com/2015/01/10/will-the-real-restful-api-please-stand-up/

この記事では、なぜRESTは宗教的になりがちなのか考察されている。要は一人の創始者があいまいかつわずかな言葉でお告げを語ってそれっきりになってしまったため、他の人による「解釈学」が発達しているということ。
http://mikeschinkel.com/blog/why-rest-is-more-like-religion-than-most-technologies/

RESTの6大規約(原論文のCHAPTER 5より)

  1. クライアント・サーバー(当然)
  2. ステートレス(クッキーやCSRF対策のトークンを入れるとステートフルになってしまう…)
  3. キャッシュ(サーバはレスポンスのキャッシュ可否を明示すべし)
  4. ユニフォームインターフェイス(これが重要。URL、HTTPメソッド、メディアタイプ)
  5. レイヤー(OSI参照モデルのように?レイヤー構成にすべし)
  6. コード・オン・デマンド(クライアントサイドスクリプト)

リチャードソンによるマチュリティモデル(RESTの4段階モデル)とマーティン・ファウラーによる解説。マーティン・ファウラーの説明は分かりやすい。
http://martinfowler.com/articles/richardsonMaturityModel.html
http://www.crummy.com/writing/speaking/2008-QCon/act3.html

Level 0 Plain Old XML(昔ながらの単純にXMLを返すやり方)
Level 1 URLでリソースを表すようにする(リソースを動詞でなく名詞で表す)
Level 2 HTTPメソッドGET, POST, PUT, DELETE等を正しく使い分ける
Level 3 レスポンスの中に関連するリンクを含める
overview.png

There is No REST API : programming

48
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?