Web APIプロジェクト構築ガイド

この記事では、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.configWebApiConfig.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>

タグ: WebAPI CORS ASP.NET WebApiTestClient IIS

5月16日 16:25 投稿