この記事では、Web APIプロジェクトの作成、クロスドメイン対処法、リクエスト方式、テストツールの設定、およびパッケージングと公開について説明します。
1. Web APIプロジェクトの作成
新しいWeb APIプロジェクトを作成するには以下の手順に従います:
- 新しいプロジェクトを選択し、Web APIテンプレートを選びます。
- プロジェクト名を入力して作成します。
- HelpPage関連ファイルを確認します。特に
HelpPageConfig.csでXMLドキュメントのパスを設定します。 - プロジェクトのプロパティからXMLドキュメントのパスをコピーし、
HelpPageConfig.csで設定します。 - ルーティング設定を行うため、
RouteConfig.csに次のコードを追加します:
routes.MapRoute(
"HelpPage", // ルート名
"{controller}/{action}/{id}", // URLパラメータ
new { controller = "help", action = "Index", id = UrlParameter.Optional }, // デフォルトパラメータ
new string[] { "mvcProject.Areas.HelpPage.Controllers" }
).DataTokens.Add("Area", "HelpPage");
WebApiConfig.csにアクションを追加し、コントローラーを設定します。
2. クロスドメイン問題の解決
クロスドメイン問題を解決するには、Web.configとWebApiConfig.csを編集します。
Web.configに次の設定を追加します:
<add key="cors_allowOrigins" value="*" />
<add key="cors_allowHeaders" value="*" />
<add key="cors_allowMethods" value="*" />
WebApiConfig.csに次のコードを追加します:
using System.Configuration;
var origins = ConfigurationManager.AppSettings["cors_allowOrigins"];
var headers = ConfigurationManager.AppSettings["cors_allowHeaders"];
var methods = ConfigurationManager.AppSettings["cors_allowMethods"];
var corsPolicy = new System.Web.Http.Cors.EnableCorsAttribute(origins, headers, methods)
{
SupportsCredentials = true
};
config.EnableCors(corsPolicy);
必要に応じてNuGetからCORSパッケージをインストールしてください。
3. リクエスト方式
Web APIはHTTPのさまざまなメソッドに対応しています。GET、POST、PUT、DELETEなどのリクエストを処理するためのコントローラーを定義します。
- 新しいコントローラーを作成し、必要なアクションメソッドを追加します。
- 各アクションメソッドには適切なHTTPメソッド属性を付けます。
public class DataController : ApiController
{
[HttpGet]
public IHttpActionResult GetData()
{
return Ok(new { message = "データ取得" });
}
[HttpPost]
public IHttpActionResult CreateData([FromBody] DataModel model)
{
return CreatedAtRoute("DefaultApi", new { id = 1 }, model);
}
[HttpPut]
public IHttpActionResult UpdateData(int id, [FromBody] DataModel model)
{
return Ok(new { message = "データ更新" });
}
[HttpDelete]
public IHttpActionResult DeleteData(int id)
{
return Ok(new { message = "データ削除" });
}
}
public class DataModel
{
public int Id { get; set; }
public string Name { get; set; }
}
4. Web APIテストツールの導入
Web APIのテストを行うためには、WebApiTestClientを使用します。
- NuGetからWebApiTestClientパッケージをインストールします。
Api.cshtmlファイルを編集し、テストクライアントの参照を追加します。- XMLドキュメントのパスを設定してヘルプページが正しく機能するようにします。
@Html.DisplayForModel("TestClientDialogs")
@Html.DisplayForModel("TestClientReferences")
5. パッケージングと公開
プロジェクトをパッケージ化して公開するには、次の手順を行います:
- IISにサイトを追加します。
- 80ポートが使用されている場合は、別のポートを使用するか、リダイレクト設定を行います。
リダイレクトの例:
<script>
location.href="http://example.com:8080/api";
</script>