Restful web Services----第2章ノート
2007 ワード
Restful web Services----第2章ノート
リソースの識別
RESTful Webサービスを開発する最初のステップの1つは、すべてのクライアントがサーバと対話するために使用するリソースを識別し、分類するリソースモデルを設計することです.
リソースの粒度の選択方法
ネットワーク効率、表現量、クライアントの使いやすさによって、リソースの粒度を決定するのに役立ちます.粗粒度設計は、リッチクライアントアプリケーションに便利です.より細かいリソース粒度は、キャッシュの要件をよりよく満たすことができます.したがって、リソースの粒度は、クライアントとネットワークの観点から決定されるべきである.次の要因は、リソースの粒度にさらに影響を及ぼす可能性があります.
リソースをコレクションに整理する方法
リソースをコレクションに整理すると、クライアントおよびサーバがリソースのセットを参照と見なし、コレクション上でクエリーを実行したり、コレクションをファクトリとして新しいリソースを作成したりすることができます.
アプリケーション固有の条件に基づいて類似のリソースを識別し、一般的な例として、同じデータベース
Schema
を共有するリソース、同じ特性attribute
または属性property
を有するリソースまたはクライアントが類似したリソースと見えるリソースがある.計算または処理関数のサポート方法
処理関数を1つのリソースと見なし、処理関数出力を含むHTTP GETを使用して記述を取得する.クエリー・パラメータを使用して、処理関数に入力します.RESTは、アプリケーション分野の「物事」または「エンティティ」リソースにのみ適用されます.これは、RESTアーキテクチャ制約の最も一般的な理解の一つです.
コントローラを使用してリソースを操作するタイミングと方法
RESTful Webサービスでは、コントローラはサーバとクライアントの独立性を向上させ、ネットワーク効率を改善し、サーバを原子操作の形で複雑な操作を実現するのに役立ちます.コントローラは、サーバが複雑なビジネス操作を抽象化し、クライアントにこれらの操作をトリガーする方法を提供するのに役立つ、リソースを原子的に変更できるリソースです.
例:
クライアントは、本の30日間の無料オンラインバージョンを提供し、15%の割引を提供します.サーバには、30日間の無料アクセスを提供しているすべての図書が含まれているコレクションが維持されています.クライアントは、POSTリクエストを送信して、その本をコレクションに追加することができます.
#
POST /30daybookoffers HTTP/1.1
Host: www.example.org
Content-Type:application/x-www-urlencoded
id=1234&from=2009-10-10&to=2000-11-10
#
HTTP/1.1 201 Created
Location: http://www.example.org/30dayebookoffer/1234
Content-length:0
ビジネス上でこの2つの変更を原子で完了するように要求された場合、コントローラリソース、すなわち割引の追加と30日間の無料アクセスの要求を使用できます.
要求において、パラメータ
op=updateDiscount
およびop=30dayOffer
は、動作を識別するために使用され、これにより、トンネルは、要求の可視部分(例えば、URIの要求、HTTPメソッドの使用、要求ヘッダおよびメディアタイプの使用)が動作を明確に記述しないため、プロトコルレベルでの可視性を低下させる.トンネルを避けるためには、すべての代価を惜しまず、操作ごとに異なるリソースを使用します.