RESTの最も重要な制約は、ハイパーメディア制約(「アプリケーション状態のエンジンとしてのハイパーテキスト」)です。Webアプリケーションを、クライアントが各状態を要求できるステートマシンと考えてください(例:GET / user / 1)。クライアントがそのような状態を1つ持つと(ユーザーがWebページを見ていると考えてください)、アプリケーションの次の状態に進むためにたどることができるリンク。たとえば、クライアントが詳細状態に移動するためにたどることができる「ユーザー状態」からのリンクがある場合があります。
このようにして、サーバーは、実行時に一度に1つの状態でアプリケーションのステートマシンをクライアントに提示します。賢いこと:ステートマシンは実行時に一度に状態で検出されるため、サーバーは実行時にステートマシンを動的に変更できます。
そうは言っても...
1.リソースは基本的に、クライアントに提示するアプリケーションの状態を表します。多くの場合、はドメインオブジェクト(ユーザーなど)と厳密に一致しますが、それらに提供する表現は、単にシリアル化されたドメインオブジェクトではなく、Webアプリケーションの状態であることを理解してください。
GET / users/123の観点から考えるのは問題ありません。URI内にアクションを配置しないでください。有害ではありませんが(不透明な文字列です)、控えめに言っても混乱します。
ブライアンが言ったように。Atom Publishing Protocol RFC(5023)は、作成/読み取り/更新のサイクルを非常によく説明しているため、ご覧になることをお勧めします。
on3.ドキュメント指向のメッセージに焦点を当てます。メディアタイプは、アプリケーションのセマンティクスを(完全に)提供するため、RESTの重要な部分です。多くの場合暗黙的なスキーマの周りでクライアントとサーバーを結合するため、application/xmlやapplication/jsonなどのジェネリック型は使用しないでください。ニーズに合うものがない場合は、独自のタイプを作成してください。
たぶんあなたは私がUBLを使って一緒にハッキングしている例に興味があります:http ://www.nordsc.com/blog/?cat = 13
on 4.通常、作成にはPOST /users/を使用します。RFC5023を見てください-これはそれを明らかにします。わかりやすいスペックです。
on 5.セッション(ステートフルサーバー)を使用できず、RESTfulになることができないため、すべてのリクエストでクレデンシャルを送信する必要があります。さまざまなHTTP認証スキームがすでにそれを処理しています。HTTP Authorizationヘッダーには、キャッシュに対して特別に指定されたセマンティクスがあるため、キャッシュに関しても重要です(パブリックキャッシュはありません)。クレデンシャルをCookieに詰め込むと、その重要な部分が失われます。
すべてのHTTPステータスコードには、特定のアプリケーションセマンティクスがあります。それらを使用し、HTTPを介して独自のエラーセマンティクスをトンネリングしないでください。
詳細については、#rest IRCにアクセスするか、Yahooのrest-discussに参加してください。
1月