2009-03-12 9 views
11

Microsoft開発スタック(IISおよび/またはASP.NET)を使用している人は、実際にRESTを使用している人が何人いるのでしょうか?もしそうなら、どのような形の休憩が使われていますか?IIS上でのREST

RESTは、無数の方法を分類することができますが、次のようにこの質問の目的のために、私はそれを分類します:

  1. 根本REST:/ POST PUTすべて HTTPメソッドを使用すると、/ GET/DELETE
  2. 穏健派REST:
  3. GET/POSTを使用してRESTハイブリッドは:ちょうどGETやPOST のHTTPメソッドを使用しますが、アドレス指定 と状態の RESTfulな原則に従います。

私はIIS上で「根本的にRESTful」なサービスを実装しようとしてきましたが、私たちはPUTメソッドの実装が困難でした。私はIIS上でPUTを実装する上で多くの話題がないようですので、実際にどれくらい多くの人が実際に完全なRESTを使用しているのだろうと思いますか?あなたはRESTを使用していますか?

+0

put http動詞を実装すると、特に最先端の音は出ません。 httpハンドラを追加すると、put要求が届くことがわかります。 – tarn

+0

IISは最近、ASP.NETとほとんど関係がありません。あなたは両者を同じように見せます。 –

+0

私の質問のポイントは、マイクロソフトの技術を使用している人々が何をしているのかに興味があったということでした。より意味をなさせるために言い換えた。 – Jeff

答えて

8

私は、IISスタック上でRESTの周りにバズがない理由の一部は、Webサービスに来たときの方法、真実、そして光としてのMicrosoftの元々の採用であったと考えています。特にWindows Communication Foundationは、集中している。

.NET 3.5のリリースに続くWCF REST Starter Kitと、.NET 3.5 SP1の一部であるADO.NETデータサービスも引き続きリリースされました。

Magnus points outとして、マイクロソフトはASP.NET Web APIをリリースしました。これは、ASP.NET MVCプラットフォームの機能を基盤にしており、IIS上のRESTfulサービスへの統一的なアプローチを提供します。

ASP.NET Web APIは、ブラウザやモバイルデバイスなど、さまざまなクライアントに到達するHTTPサービスを簡単に構築できるフレームワークです。 ASP.NET Web APIは、.NET FrameworkでRESTfulアプリケーションを構築するための理想的なプラットフォームです。

1

IISのバージョンは? IIS6では、WebDAVを有効にしてPUSH要求を有効にする必要があります(いいえ、それはあまり意味がないと思います:-))。私はそれがIIS7のケースだとは思わない。

+0

IIS 7 on 2008サーバー – Jeff

+0

既定では、IIS 7はPUT要求を拒否します。 – Jeff

2

私は、Microsoft ADO.NET Data Servicesのは、RESTfulサービスを使用していますかなり確信しています。それはチェックアウトする価値があるかもしれません...安心していることを除けば、それは本当にクールな技術です。

ここで、その上に白い紙からの抜粋です:マイクロソフトADO.NETデータサービスの目標は、企業内のWebクライアントで使用できるデータサービスとしてデータを公開するアプリケーションを可能にすることにある

は、ネットワークを介してインターネットを介して。 GET、POST、PUT、DELETEなどの標準HTTP動詞を使用して、サービスに対してCRUD操作を実行することで、通常のHTTP要求を介してデータサービスにアクセスできます。サービスで使用されるペイロード形式はアプリケーションによって制御可能ですが、すべてのオプションはJSONやAtom/APPなどの単純でオープンな形式です。

ここwhite paperだと、それはhome pageだ(私はそれがホーム・ページだと思い少なくとも何)

HTHS、 チャールズ

3

それはあなたがそれに近づく方法によって決まります。

デフォルトでは、IISは動詞をGET、HEAD、POST、およびDEBUGに制限します。もちろん、ハンドラマッピングを編集することで、PUTを受け入れるように指示することもできます。あなたが.aspxのあなたは、もちろん、サーバはあなた/

1
許可するように設定されていると仮定すると、ほぼ同じ方法でできる再マッピングしたい場合は、

<httpHandlers> 
    <add path="*.example" type="System.Web.UI.PageHandlerFactory" verb="GET, HEAD, POST, PUT, DELETE, DEBUG"/> 
</httpHandlers> 

ような何かをしたい、独自の拡張を望んでいたと仮定すると、

私は、IIS管理ツールを使用しないIIS Webサーバーエンジン(http.sys)である.Netクラス、HttpListenerを使用しています。私はすべてのHTTP動詞を扱っています。ASP.Netランタイムは、必要に応じて追加することができますが、必要はありません。

実際には、いくつかのケースでは、実験としてPATCHのバージョンを実装しました。一旦基本に達すると、動詞はHTTPヘッダーの1つの文字列に過ぎません。

実際には、膨大な方法でRESTを分類することはできません。 HTTPを使用して分散アプリケーションを構築する方法はありますが、oneのRESTの定義しかありません。

11

私はIIS上でWCF RESTを使用するプロジェクトに参加していますが、もちろん私が構築したフレームワークを見てみることをおすすめします:OpenRastaは.netオープンソースのスタックであり、より簡単に。

Googleはあなたの友人です。メインサイトはhttp://trac.caffeine-it.com/openrastaです。

3

「Zhaph - Ben Duguid」の回答に記載されているWCF Rest Toolkitは廃止予定です。
これはWCF Web API projectに置き換えられました。