REST-ウェブサービス – 日本語

ビルサービスのWeb RESTウェイ

ロジャー・L・コステロ

私が最初に休息した後、RESTスタイルのWebサービスを構築する方法を説明するための簡単な紹介を与えるでしょう。

RESTとは何ですか?

RESTは博士号でロイ・フィールディングによる造語であります 論文[1]は、ネットワークシステムの建築様式を説明します。 RESTはRepresentational State Transferの頭字語です。
なぜそれがのRepresentational State転送と呼ばれていますか?

このサイトは、リソースで構成されています。 リソースは、関心のある任意の項目です。 例えば、ボーイング航空機社は747クライアントはこのURLでリソースにアクセスできるリソースを決定します:
http://www.boeing.com/aircraft/747

リソースの表現は、(例えば、Boeing747.html)が返されます。 表現は、状況では、クライアント・アプリケーションを置きます。 別のリソースのハイパーリンク全体Boeing747.htmlクライアントがアクセスされた結果。 新しい表現は、さらに別の状態にクライアントアプリケーションを置きます。 このように、リソースの各状態表現を持つクライアントアプリケーションの変更(転送) – >状態転送!

ここ州ロイフィールディング転送の意味の説明は次のとおりです。

次のページが(次の状態のアプリケーションを表す)ように、Webページのネットワーク(仮想ステートマシン)、ユーザーがリンク(状態遷移)を選択することで、アプリケーションを介して進行する:「状態転送が動作するように設計されてどのようにWebアプリケーションのイメージを喚起することを意図していますこれは、ユーザーに転送され、その使用のために与えられています。」

RESTのための動機

RESTのための動機は、成功したウェブサイトを作るの特性をキャプチャすることです。 さらに、これらの特性は、Webの進化を導くために使用されています。

BREAK -建築スタイル、標準ではありません

RESTは標準ではありません。 あなたは、W3C仕様消火のRESTは表示されません。 あなたは、IBMやMicrosoftやSunはRESTの開発者用ツールキットを販売表示されません。 なぜ?RESTは、アーキテクチャのスタイルだけですので。 あなたはそのスタイルを埋めることはできません。 あなたはそれを理解し、そのスタイルでWebサービスを設計することができます。 (クライアントサーバアーキテクチャスタイルでアナログから。標準的なクライアント – サーバーはありません。)

RESTは標準ではありませんが、それが使用される標準ではありません。

  • HTTP
  • URLを
  • XML / HTML / GIF / JPEGの/ etc(リソース表現)
  • テキスト/ XML、テキスト/ HTML、画像/ gif形式、画像/ JPEG等(MIMEタイプ)

ClassicシステムSISA

ウェブは、RESTシステムです! ブック注文サービス、検索サービス、オンライン辞書サービスなど – – あなたが年のためにこれを使用しているそれらのWebサービスの多くは、RESTベースのWebサービスです。 残念ながら、あなたは、RESTを使用してRESTサービスを構築し、あなたもそれを知らないされています。

SISAは、Webの「全体像」を扱っています。 これは、(例えば、Webサービスを実装するJavaサーブレットやCGIを使用して)実装の詳細に対処しません。 それでは、REST「全体像」の観点からWebサービスを作成する例を見てみましょう。

一部のWebサービスデポ

パートデポ株式会社(架空の会社)は、顧客ができるようにするために、いくつかのWebサービスを展開しています:

  • セクションのリストを取得
  • 特定の部分についての詳細な情報を取得します
  • 送信発注書(PO)

私たちは、各サービスが落ち着いて実装されている方法を考えてみましょう。

パーツリストを取得します。

Webサービスは、リソースセクションの一覧を表示するために利用可能なURLになります。例えば、クライアントは、部品のリストについては、このURLを使用します。
http://www.parts-depot.com/parts

「どのように」Webサービスの部品リストがクライアントに対して完全に透過的である生成することに注意してください。 知っているすべてのクライアントは、彼/彼女は上記URLを渡した場合、部品リストを含むドキュメントが返されることです。 実装は、クライアントに対して透過的であるので、部品デポは、クライアントに影響を与えることなく、これらのリソースの基礎となる実装を自由に変更できます。 これは、疎結合です。

クライアントは、次の書類を受け取ります。

[クライアントが(マシン・ツー・マシン処理のための)XMLとして表現を望んでいるサービス内容を決定交渉を通じてと仮定する。]パーツリストは、各セクションに関する詳細な情報を取得するためのリンクを持っていることに注意してください。 これは、RESTの重要な特徴です。 調べると応答文書内の代替URLの中から選択することで、次の1つの国からのクライアントを転送します。

詳細なデータセクションを取得します。

Webサービスは、リソースの各部分に使用可能なURLになります。 例えば、ここでは、クライアントは00 345セクションを要求する方法を示します。
http://www.parts-depot.com/parts/00345

クライアントは、次の書類を受け取ります。

       00 345
      ウィジェット-A
      このセクションでは、FRAPの組み立てに使用されています 
      
       0時10分
       10

ここでも、これらのデータは、まだ多くのデータに関連付けられているかを観察 – このセクションの仕様は、ハイパーリンクを横断することにより求めることができます。 各応答文書は、クライアントが、より詳細な情報を入手するためにドリルダウンすることができます。

POを提出

Webサービスは、POを送信するために利用できるURLになります。 クライアントは、PO部品デポが設計し(とWSDL文書で公表)しているスキーマPOに準拠するインスタンス文書を作成します。 クライアントは、HTTP POSTのペイロードとしてpo.xml内を提出します。

POサービスが手渡さPOへのURLにHTTP POSTに応答します。 したがって、クライアントは、(それを編集/更新するため)、その後、POをいつでも取ることができます。 クライアントとサーバーの間で共有される情報の一部となっているPO。 (PO)の共有情報はサーバーによってアドレス(URL)が与えられ、Webサービスとして公開されます。

URLへの物理的、論理URL

リソースは、概念エンティティです。 表現は、リソースの具体的な症状です。 このURL:
http://www.parts-depot.com/parts/00345

論理的なURLではなく物理的なURLです。 したがって、例えば不要、各セクションの静的なHTMLページがありません。 万部がある場合は実際には、その後、百万静的なHTMLページは、非常に興味深いデザインではありません。

[実装の詳細:部品デポサービスはXMLとしてクエリ結果を定式化するために、データベースクエリの一部に部品番号を使用して、ホスト名の後に文字列を解析し、サーブレットのJavaを使用して、特定の部分についての詳細なデータを受け取っ実施し、その後のペイロードとしてXMLを返すことができますHTTPレスポンス。]

スタイルのURLの問題として、その実装技術が使用されている開示することはありません。あなたは、クライアントに影響を与えずに実装を変更したり、誤解を招くようなURLを持っていることがあってはなりません。

REST Webサービスの特徴

ここではRESTの特徴は以下のとおりです。

  • クライアントサーバー:プル・ベースの対話スタイル:消費するコンポーネントは、表現を引きます。
  • ステートレス:クライアントからサーバーへの各要求は、要求を理解するために必要なすべての情報が含まれている必要があり、サーバー上の任意の保存されたコンテキストを利用することができませんでした。
  • キャッシュ:ネットワーク効率応答を改善するためには、キャッシュ可能かキャッシュ不可能としてラベル付けすることができなければなりません。
  • 統一されたインタフェース:すべてのリソースが(DELETE、例えば、HTTP GET、POST、PUT)ジェネリックインターフェイスを使用してアクセスされています。
  • 名前のソース – システムのURLを使用して、指定されたリソースで構成されています。
  • リソース表現は、相互接続されている – リソースの表現は、このように一つの国から別のものに進行するようにクライアントを有効にする、URLを使用して相互接続されています。
  • 層状のコンポーネント – 仲介、などプロキシサーバ、キャッシュサーバ、ゲートウェイ、などは、パフォーマンス、セキュリティ、などをサポートするために、クライアントとリソースの間に挿入することができます

原則RESTのWebデザインサービス

1.ネットワーク(すなわち、ウェブ)でREST Webサービスを作成するための鍵は、サービスとして公開するすべての概念的なエンティティを識別することです。 部品の一覧、詳細なデータ、発注書:上に私たちは、情報源のいくつかの例を参照してください。

2.各リソースのURLを作成します。 リソースは名詞、動詞ではないはずです。 たとえば、これを使用しないでください。
http://www.parts-depot.com/parts/getPart?id=00345

動詞、あるgetPart注意してください。 代わりに、名詞を使用します。
http://www.parts-depot.com/parts/00345

3.クライアントはリソースのみの表現を受け取ることができるかどうかに応じてリソースを分類、またはクライアントが変更できるかどうかのリソース(追加)を。 最初の場合は、HTTP GETを使用してアクセス可能なリソースを作ります。 その後については、HTTP POSTを使用してリソースにアクセスすること、PUT、および/またはDELETE。

4.すべてのリソースは、HTTP GET副作用自由を経由してアクセスできる必要があります。 これは、リソースがリソースのみの表現を返すべきです。 借入リソースは、リソースを変更するにはなりませしなければなりません。

5.だれ/女性は島ではありません。 同様に、いかなる表明島であるべきではありません。 言い換えれば、より多くの情報を閲覧すること、および/または関連情報を取得するためにクライアントを有効にするには、リソース表現にハイパーリンクを置きます。

徐々に明らかにされたデータのための6デザイン。 単一の応答ドキュメント内のすべてを明らかにしないでください。 詳細を取得するためのハイパーリンクを提供します。

7.スキーマ(DTD、W3CスキーマのRelaxNG、またはSchematronの)を使用して応答データのフォーマットを決定します。 POSTを必要とする、またはそれに供それらのサービスのために、それはまた、応答の形式を決定するための方式を提供します。

8.あなたのサービスは、WSDL文書、またはHTMLのみの文書のいずれかを使用して呼び出されますどのように説明してください。

概要

この記事では、建築スタイルとしてRESTを説明しています。 実際に、それは、Webのアーキテクチャのスタイルです。 SISAは、ウェブがうまく動作するものを説明します。 RESTの原則に従うことで、あなたのサービスは、Webのコンテキストでよく働くようになります。

今後の記事では、私は、RESTの原則を使用して、Webの進化について書きます。

認識

ロバート・レフトウィッチとフィリップ・エスクリンのおかげで大幅にコメントし、この文書を作成する際に、それらを支援します。

参照

[1] http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

No Comments

    Leave a reply