web-dev-qa-db-ja.com

既存のasp.net WebフォームアプリケーションへのWeb APIの追加

私のチームは、WCFからWeb APIにアップグレードしたいと考えています。動作しているasp.net Webフォームアプリケーションがあり、VS2010からVS2012にインポートしました。ここまでは順調ですね。

しかし、別のWeb APIプロジェクトを作成しようとしたところ、利用可能なWeb APIテンプレートがないことがわかりました。 私が見つけることができる最も近いものは、MVC 4アプリケーションを作成し、プロジェクトテンプレートをWebAPIとして設定することです。私はこのようにして、すべてが完璧に落ちました。私は、ブラウザーから呼び出しを行うことによって呼び出すことができるサンプルコントローラーを備えた作業用APIを持っています。

これの唯一の欠点は、この特定の方法が独自の手荷物を持ち込むことです。私が作成したMVC 4プロジェクトには、JQUERYとその他のライブラリが含まれていますが、おそらく必要のない他のいくつかのフォルダーが含まれています。私が欲しいのはWeb API構造だけで、余分な荷物はありません。

オンライン検索を使用してテンプレートを見つけようとしましたが、見つけたパッケージは適切に機能せず、非常に悪い評価です。 enter image description here

私は自分の問題を適切に説明できたと思います。私は今いくつかのフィードバックを楽しみにしています:)ありがとう。

18
Talha Masood

Visual Studio 2013の場合

  1. ASP.NET Webフォームプロジェクトを右クリックします。
  2. 追加-> 足場アイテムを追加...
  3. Installed/Common/MVC/Web APIで、使用するスキャフォールドタイプを選択します。
  4. 足場テンプレートの指示に従います。たとえば、「読み取り/書き込みアクションのあるWeb API 2コントローラー」または「Web API 2コントローラー-空」を選択すると、コントローラー名の入力を求められます
  5. 次に、最近作成したコントローラーを最近作成したControllersフォルダーに移動する必要があります。

結果

私が見ることができるものから、Visual Studioは次のことを行います。

  • "App_Start/WebApiConfig2.cs"が作成されます。
  • Controllersフォルダが作成されます。
  • Web.configを編集して、「system.webServer」にコンテンツを含む「handlers」要素を追加します。
  • 次のreferencesが追加されます:
    • System.Net.Http
    • System.Net.Http.Formatting
    • System.Web.Extensions
    • System.Web.Http
    • System.Web.Http.WebHost
  • packages.configが含まれるように更新されます:
    • 「Microsoft.AspNet.WebApi」
    • 「Microsoft.AspNet.WebApi.Client」
    • 「Microsoft.AspNet.WebApi.Core」
    • 「Microsoft.AspNet.WebApi.WebHost」

メモ

続いて、プロジェクトの代わりにControllersフォルダーを右クリックすることから始めて、同じ手順に従うことをお勧めします。これにより、ルートレベルではなく、Controllersフォルダーに新しいコントローラーが配置されます。

上記の手順を実行した後のVisual StudioのReadme:

Visual Studioは、ASP.NET Web API 2の依存関係の完全なセットをプロジェクト 'RowersCode.Web'に追加しました。

プロジェクトのGlobal.asax.csファイルでは、ASP.NET Web APIを有効にするために追加の変更が必要になる場合があります。

  1. 次の名前空間参照を追加します。

    • system.Web.Httpを使用します。
    • system.Web.Routingを使用します。
  2. コードがまだApplication_Startメソッドを定義していない場合は、次のメソッドを追加します。

    保護されたvoid Application_Start()

    {

    }

  3. Application_Startメソッドの先頭に次の行を追加します。

    GlobalConfiguration.Configure(WebApiConfig2.Register);

24
Ryan Kyle

多くの研究の後、私はこの問題の解決策を見つけることができました。 Visual Studioバージョンに関する私のソリューションを説明します。

VS 2012

質問で述べたように、VS2012でWeb APIプロジェクトを作成する明確な方法はありません。 MVC 4アプリケーションを作成し、プロジェクトテンプレートをWebAPIとして設定する必要があります。その後、これを実行し、Web APIが機能するようになれば、Jqueryライブラリーやその他のものなどの余分な荷物を安全に削除できます。これらのものは、ここではプロジェクトではまったく役に立たないためです。

VS 2013

ただし、VS2013では、Web APIプロジェクトを追加および管理するためのより良いアプローチがあります。現在、私はWeb APIにVS2013を使用しており、すべてが思い通りに機能しています。親切にこのリンクを参照してください、あなたはより良いアイデアを得るでしょう

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

この情報がWeb APIを初めて使用するすべての人に役立つことを願っています。特にWeb APIにアップグレードしたい、または既存のプロジェクトにWeb APIを追加したい人のために。

0
Talha Masood