blog

Web APIシリーズ(I): Web APIを初めて見て、基本的なフレームワークを手動で構築する

1.はじめに Web技術の発展に伴い、今や様々なフレームワーク、フロントエンド、バックエンド、数え切れないほど。フルスタックエンジニアは、プレッシャーが高まっています。PC、パッド、モバイルアプリの...

Oct 31, 2020 · 4 min. read
シェア

 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 の呼び出し

プログラムを実行し、アドレスバーに

Read next

J36 letとvarの違い

1.変数宣言の方法 ES3 define variable var function ES6 define variable let const class import import module 2.letとvarの違い privateで形成されるグローバルコンテキスト EC関数実行

Oct 31, 2020 · 3 min read