RESTとは(簡単な英語で)[終了]


84

最近、私はRESTに慣れることに興味を持ち始めました。RESTのwikiエントリを読んでみましたが、助けにはなりませんでした。誰かが簡単な英語で説明できるなら、それは本当にありがたいです(不必要な技術用語はありません)

  1. RESTとは
  2. Webアーキテクチャエコシステムで占める位置
  3. プロトコルとどの程度緊密に(または緩く)結合されているか。
  4. RESTの代替とは何か、RESTはそれらとどのように比較されますか。

1つまたは2つのパラグラフでこれに答えることができない場合があることを理解しています。その場合、関連リンクが高く評価されます。


6
これを試してください-tomayko.com/writings/rest-to-my-wife
talonx

私は、これは有益な、まだあまり詳しくないことを見つける:ibm.com/developerworks/webservices/library/ws-restful
NoChance

この質問は回答済みとみなすことができますか?
ゲイリーロウ

@GaryRowe 1つの答えをマークしましたが、何らかの理由で削除されたと思います。このサイトがわかりません。
ガウラフ

1
以下の答えはいずれも「べき等」という言葉を使用していません。調べる必要があります。べき等性はRESTfulアーキテクチャの重要な側面です。
ソロモンスロー

回答:


10

REST(簡単な英語)とは

分かりやすい英語:

表現:誰かに代わって話す、または行動する行為。
状態転送:転送ステータス。


テクニカル:

  • 実際のオブジェクトを転送するのではなく、フォーム内の表現(データベーステーブルを表すxml / json / textなど)を転送します。
  • インターネットで公開APIを公開してデータのCRUD操作を処理するためのREST。RESTは、単一の一貫したインターフェースを介して名前付きリソースにアクセスすることに焦点を当てています。
  • RESTは、何らかのメディアタイプを介して表現されます。メディアタイプの例には、XML、JSON、およびRDFが含まれます。
  • RESTは、リソース指向アーキテクチャ(ROA)のアーキテクチャスタイルであり、仕様や標準ではありません。
  • 建築スタイルは、それが概念、理論であることを意味します(そして、それをどのように実装するかはあなた次第です)
  • すべてが一意のエンドポイントによって識別されます。すなわち、リソース(データ)ごとに1つのエンドポイントがあります。
  • エンドポイントは、ドメイン名とリソースアドレスで構成されます。

RESTとSOAP


43

RESTとは何ですか?

代表的な国家移転。あるシステムが別のシステムと状態を通信する方法を説明します。1つの例は、XML、JSON、またはプレーンテキストとして表される製品の状態(名前、説明など)です。状態の一般化された概念は、リソースと呼ばれます。

Webアーキテクチャエコシステムでどのような位置を占めていますか?

HTTPが最も一般的なキャリアプロトコルであるため、RESTは一般にWebサービスインターフェイスに関連付けられています。7層モデルでは、アプリケーション層に存在します。ただし、次のセクションを参照してください。

プロトコルとどの程度緊密に(または緩く)結合されていますか?

RESTはHTTPではありません。HTTPを使用するのは、最も一般的な形式であるRESTが、動詞の概念を名詞の任意のコレクションに対してマッピングするのを支援するために存在するためです。HTTPには、GET http://example.org/Product(54)などのHTTPを使用してURIとして表現された任意の名詞に適用できる、汎用の動詞(GET、PUT、PATCHなど)の有用なセットが含まれています。

RESTの代替手段は何ですか?RESTはそれらとどのように比較しますか

これは、「私のアプローチはどのくらいRESTfulですか?」次のリストを使用します(Martin Fowlerが説明しRichardson Maturity Modelから要約)。

レベル0-POXの沼

すべて(読み取り、書き込み、削除)にPOSTを使用します。これはSOAP、POX、RPIなどです。HTTPを独自のプロトコルのトンネルとして使用しているだけです。要求本文の内容に基づいてすべてを実行する単一のエンドポイントをターゲットにします。

レベル1-リソース

すべてにPOSTを使用します。特定のものに関する情報を提供するように設計された複数のエンドポイントをターゲットにします。リソースを発見しました。

レベル2-HTTP動詞

リソースに対してHTTP動詞を使用します。今、あなたはそれをGETしています。POSTは作成、PUTは上書き、OPTIONSは利用可能な操作、DELETEはリソースを削除します。これらの動詞を使用した結果、さまざまなHTTPステータスコードの関連性が高まり始めています(202は承認されていますか?)。

レベル3-ハイパーメディアコントロール(HATEOAS

この時点で、最終的な飛躍を遂げ、フロー制御メカニズムとしてハイパーメディアを導入します。RESTクライアントは、ハイパーメディアの一般的な理解を超えて、特定のアプリケーションまたはサーバーと対話する方法に関する事前知識を必要としません。これは、Content-Typeヘッダーフィールドを介してHTTPで通信できます。テキスト形式にはAtomPubと(より簡潔な)HALが含まれますが、HyperAudioはオーディオストリームに適しています(SoundCloudなどを参照)


「RESTはHTTPではありません」と言いますが、Roy Fieldingはハイパーテキストが要件であるという考えにかなり固執しているようです。!ハイパーテキスト= HTTP、私はあなたが実際に外部のHTTP ...行うことができますどのくらいだろうしながら
アンドレスF.

これによると(roy.gbiv.com/untangled/2008/…)Roy Fieldingは、何らかの種類のリンクをサポートしている限り、ハイパーテキストまたはそのサブセットであるハイパーメディアをHTMLの外で表現できるという点を強調しています。
ゲイリーロウ

3
HTTPは、ステートレスプロトコルでRESTの名詞を表すURIを操作するための標準化された動詞を提供するため、RESTで適切に機能します。理想的です。しかし、彼の論文(ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)では、「RESTは特定のプロトコルへの通信を制限しませんが、コンポーネント間のインターフェースを制限しているため、そうでなければコンポーネント間で行われる可能性のある相互作用と実装の仮定。」したがって、完全なFTP実装は、クライアント側の状態管理なしではRESTfulにはなりません。
ゲイリーロウ

2
マーティンファウラーリンクの+1。通常のMartin Fowler氏は、最も明確かつ簡潔な可能な方法で概念を説明する記事を書いたように
トム・カーター

あなたstate transferは表現ではないことをカバーしました。誰かに代わって話したり行動したりする行為は、この文脈でどのように機能するかを表していますか?
Premraj

11

RESTはRepresentational State Transferの略ですが、やや直感的なインターフェイスを介してさまざまなアクションを実行するという考え方を検討する方が簡単かもしれません。

たとえば、http://www.mysite.com/FindProduct/125/などのURL は、125のIDを持つ製品に関する情報を求めている人として解釈される可能性があります。

RESTは通常HTTPの観点から考えられていますが、この概念はウィキペディアのリファレンスに記載されている他のプロトコルにも適用できます。

役に立つかもしれないRESTの他の例:


2
「RESTの学習:チュートリアル」へのリンクをお寄せいただきありがとうございます。これは、私が読んだ最初のチュートリアルであり、具体的なことを学んだという感覚が残ります。私が読んだ他のすべて(Wikipediaの記事を含む)は、技術的な専門用語に囲まれた最も抽象的な方法でのみRESTを説明しています。
Avian00

最初のリンクが機能していません。それでもあなたの答えは役に立ちます!!
愛好家
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.