1.
Web技術の発展に伴い、様々なフレームワーク、フロントエンド、バックエンド、数え切れないほど存在します。フルスタックエンジニアのプレッシャーは増すばかりです。 PC端末、パッド端末、モバイルアプリ開発など、フロントエンドとバックエンドを1つの開発モデルにすることは非常に嵩張ります。したがって、フロントエンドとバックエンドの分離は、Web開発のトレンドであり、RESTful APIは、現在、フロントエンドとバックエンドの分離の最良の実践である、ASP.NET Web APIは、上のRESTfulアプリケーションを構築するための理想的なプラットフォームです。 Web APIアプリケーションは、次の図に示されています。
ASP.NET Web API
ASP.NET Web API は、ブラウザやモバイルデバイスなど、幅広いクライアントをカバーする HTTP サービスを簡単に構築できるフレームワークです。 ASP.NET Web API は、.NET Framework 上で RESTful アプリケーションを構築するための理想的なプラットフォームです。その中でも、RESTfulは設計スタイルに属し、REST GET、POST、PUT DELETEは、データの追加、削除、変更、およびチェックに、開発者のアプリケーションは、RESTfulの原則に準拠している場合、それは "RESTfulスタイルのアプリケーションサービス "と呼ばれています。
ASP.NETのMVCの設計パイプラインよりも、ASP.NETプラットフォームから独立したASP.NET Web APIのコアメッセージ処理パイプラインは、より複雑な、より強力な、Webホストとセルフホスト2つのホスティング方法をサポートし、この記事では、主に最初の方法を紹介します。
手動で基本フレームワークを構築
Visual Studioは、ASP.NET Web APIアプリケーションの作成に特化したプロジェクトテンプレートを提供し、このプロジェクトテンプレートによって提供されるウィザードの助けを借りて、あなたは "ワンクリック "で完全なASP.NET Web APIプロジェクトを作成することができます 。プロジェクトの作成プロセスでは、Visual Studioは自動的に必要なアセンブリの参照や設定を追加し、さらに関連するコードの自動生成のために、要するに - 文:プロジェクトを生成するために、このウィザードは、独自の後に作成されました - 実行可能なアプリケーション 。私は、Web APIの動作原理をより深く理解することができ、手動での建設に焦点を当て、自動作成のプロセスを実証するためにここにいません。
空のASP.NET Webアプリケーションの作成
VS2017で、ASP.NET Web Applicationを選択し、フレームワークに.NET Framework 4.5を選択すると以下のようになります。
空のプロジェクトを選択し、以下のようにMVCとWeb APIのオプションも削除します。
マイクロソフト.Asp.Net.Api
プロジェクトを右クリックし、NuGetパッケージの管理を選択し、WebAPIを検索し、Microsoft.Asp.Net.Apiを選択し、下図のように右側のインストールボタンをクリックしてインストールを完了します。
グローバル・アプリケーション・クラスGlobal.asaxの追加
プロジェクトを右クリックし、新規項目を追加して、以下のようにグローバル・アプリケーション・クラスを選択します。
global.asax は、グローバルに利用可能なコードを提供するテキスト・ファイルです。このコードには、アプリケーションのイベントハンドラ、セッションイベント、メソッド、静的変数が含まれます。このファイルはアプリケーションファイルとも呼ばれることがあります。以下のコードでファイルを開くと、このファイルには Web アプリケーションのエントリ Application_Start が含まれていることがわかります。
namespace MyWebAPI
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}
Web APIルーティングの登録
ルーティングシステムは、リクエストメッセージがASP.NET Web APIメッセージ処理パイプラインに入るための最初の障壁であり、その基本的な目的はURLリクエストの解析に使用されます。
Application_Start 関数に、以下のコードで Web API ルートを登録します:
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
}
Web API コントローラの追加
プロジェクトを右クリックして新規項目を追加し、下図のように Web API Controller クラスを選択します。
ValuesController.csファイルを開き、クラスが直接ApiControllerから継承され、GET、POST、PUT DELETEおよびその他のアクションが含まれていることがわかり、コードは以下に示すように、記事のその後のシリーズでコントローラが詳細に説明され、ここだけでなく、説明されます。
public class ValuesController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(int id)
{
return "value";
}
// POST api/<controller>
public void Post([FromBody]string value)
{
}
// PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
Web API の呼び出し
プログラムを実行し、アドレスバーに