web-dev-qa-db-ja.com

Simple WEB API REST Project

ASP.NET MVCを使用してVisual Studio 2013でシンプルなREST APIを作成する最良の方法は何ですか。

HTTP REST API。

Razorビューエンジン、Javascript、またはHTMLを含める必要はありません。

過去に通常削除してしまう不要なエクストラをすべて使わずにプロジェクトを作成するにはどうすればよいですか?

ありがとうございました。

21
jim

選択したテンプレートにすべて含まれています。

  1. [新しいプロジェクト]ダイアログで、まだ選択されていない場合は[.NET Framework 4.5]を選択します
  2. [インストール済み]> [テンプレート]> [Visual C#]> [Web]、[ASP.NET Webアプリケーション]の順に移動し、[OK]を選択します。
  3. プロジェクトの種類を選択するダイアログで「空」を選択しますが、「フォルダーとコア参照の追加」の下の「Web API」を必ず確認してください。

これで、最低限必要なものが作成されます。

参照: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

32
Jason W

ASP.NETのどの部分が必要かによって、Nancyを https://github.com/thecodejunkie/Nancy で確認できます。 ASP.NET内でホストでき、非常に軽量で、さまざまなビューテクノロジ(Razor、Spark、SimpleViewなど)をプラグインするオプションを備えたシンプルなルーティングを提供します。

2
user783836

必要に応じてMVCコンポーネントを削除し、Web API 2を使用できます。独自のカスタム構成ビットを追加します。

        //attribute routing - lets me put any route any method in any darn file.
        //this sets you free.  I could never see doing it any other way.
        config.MapHttpAttributeRoutes();

そのため、コントローラとして作成した任意のファイルで、必要なルートを即座に作成できます。

public class MyWeirdController : ApiController {
    //via REST, get object //method-route defined here as I want it
    [HttpGet] [Route("~/my/custom/route/someobject/{objectid}")]    
    public CustomObject GonnaGetCustomObject(int objectid) {

       .... use whatever 
      var obj = new CustomObject();
      obj.SetSomething = true;

     return obj
    }
}

MVCは必要ありません。 Linq2SQLでWebAPI2を使用します(単純な場合、エンティティはPITAに近い)-その部分も必要ありません。 L2SQLエンティティは、モデリングクラスで立ち上がって実行するのが、より速く/簡単になります。ただし、任意のクラスまたは任意のクラスを送信してください。

Javascript側でMVVMしたい場合は、通常Knockoutを使用します。 KO.Mappingを使用すると、1行のコードでCustomOBjectを受け取り、JSオブジェクトを使用してページ上の要素を操作し、すぐにバインドできます。これらすべての中で最も難しい部分は、ノックアウトを学ぶことです。 WebAPI2を使用したカスタム属性の作成は、非常に簡単で楽しいです。

要するに、カスタム属性ルーティングを備えたWebAPI2で、RESTクライアントを任意の方法で立ち上げることができます。任意のメソッド/戻り値/タイプを使用して "コントローラー"を自由に分割できます。必要に応じてシンプルにすることも、KnockoutやL2SQL(またはEF)などを追加して、より緊密にタイプバインドすることもできます。

2
Jason