.NET を使用してREST ful Web サービスを 作成するためのベスト プラクティスとサンプル コードの良いリンクを探しています。
また、REST に関するその他のご意見もお待ちしております。
.NET を使用してREST ful Web サービスを 作成するためのベスト プラクティスとサンプル コードの良いリンクを探しています。
また、REST に関するその他のご意見もお待ちしております。
ADO.Net Data Servciesを使用すると、.Net の世界で RESTful Web サービスを簡単に構築および使用できますが、それでも概念を理解することが重要です。WCF (後で REST サポートを追加) と比較すると、ADO.Net Data Services は主に REST 用に構築されています。
RESTful Web サービスを構築するためのガイドラインには、必要なリソースに関するすべての情報が含まれています。
これは、別の役立つブログ エントリです。
統一されたインターフェイスの制約は、Web 用に構築されたサービスが Web アーキテクチャの適切な参加者になる方法を説明しています。これらの制約は、次のように簡単に説明されています。
1) リソースの識別: リソースとは、名前を付けて表すことができる任意の情報項目です (たとえば、ドキュメント、特定の時点での株価、ラスベガスの現在の天気など)。サービス内のリソースは、URI を使用して識別する必要があります。
2) 表現によるリソースの操作: 表現は、リソースの物理的な表現であり、有効なメディア タイプに対応する必要があります。サービスの背後にあるデータ形式として標準のメディア タイプを使用すると、幅広い潜在的なクライアントがサービスにアクセスできるようになり、サービスの範囲が広がります。リソースとの相互作用は、その URI によって識別されるリソースの表現の取得と操作に基づく必要があります。
3) 自己記述型メッセージ: サービスのインタラクションでステートレスの原則に従い、標準のメディア タイプを使用し、HTTP メソッドの使用法と制御ヘッダーを介してメッセージのキャッシュ可能性を正しく示すことで、メッセージが自己記述的であることを保証します。自己記述型メッセージにより、クライアントとサーバーのどちらにも影響を与えずにメッセージを仲介者が処理できるようになります。
4) アプリケーション状態のエンジンとしてのハイパーメディア: アプリケーション状態は、URI とハイパーリンクを使用して表現し、状態間の遷移を行う必要があります。これはおそらく、 Roy Fielding の論文で説明されているアーキテクチャ上の制約の中で最も物議を醸し、最も理解されていないものです。実際、フィールディングの論文には、アプリケーションの状態を表すために HTTP Cookie を使用することに反対する明確な論拠が含まれていますが、これはしばしば無視されています。
Windows Communication Foundationは、.NET 3.5 以降の REST モデルをサポートしています。
MSDN でドキュメントとコード サンプルを見つけることができます。
REST を学習するためのリソース:
私が読んだ中で最も優れた入門書はRESTful Web Services bookで、モデルと原則を説明するだけでなく、実際に RESTful Web サービスを設計する方法を示しています。最も役立つのは、REST API の記述/指定方法に関するチェックリストです。
xml.comの「RESTful Web」シリーズの記事は優れた入門書です。
著者 (The Atom Publishing Protocol で有名な Joe Gregorio) は、定期的に REST に関する洞察に満ちた記事を彼の ウェブログで公開しています。「RESTify DayTrader」 (ベンチマーク株式取引アプリケーションに適用された REST アーキテクチャ) は、良い出発点です。Pythonでの小さな RESTful Web フレームワークの実装を示す" Why so many Python web frameworks? "も気に入っています。
REST Web サービスの開発を始めたとき、Mark Masse の REST API Design Rulebook を読みました。基本と理論を理解すれば、WCF、HTTPListener、または ServiceStack を使用して REST を実装できるようになります。これらのフレームワークはすべて .NET であり、非常によく文書化されています...
サービス スタック (http://www.servicestack.net/) には、開始するのに十分な情報が Web 上にあることをお勧めします。
WCF は ASP.NET Web API を提供します。これは問題ありませんが、私は使用しません。
いずれにせよ、現在、優れた REST フレームワークはありません。使いやすいものを選択し、本から学んだ理論を適用する必要があります。