ASP.NET Web API における クエリパラメーター と メッセージボディー の バインド

0 件のコメント

リクエスト時 に設定する クエリパラメーター、 メッセージボディー と、リクエストを受け取った関数の引数 がどのような関係にあるかをまとめます。 具体的には、クエリーパラメーター を 引数 へ バインド する方法と、メッセージボディー から モデルクラス へ バインド する方法 についてのまとめです。

目次

クエリパラメーター と 引数

クエリーパラメーター の キー と サーバーサイドで実行される関数の 引数名 が一致するものに割り当てられます。

  • クライアント リクエスト

    $.ajax({
        type: "GET",
        url: "http://[サーバー]/[アプリケーション]/api/xxxx?type=pen&price=100"
    });
    
  • 呼び出される サーバー処理

    public class XxxxController
    {
        public void Get(string type, int price)
        {
            // type="pen"、price=100 が設定された状態で呼び出される
        }
    }
    

メッセージボディー と 引数

メッセージボディー をサーバー処理で取得する場合、引数に対して FromBody 属性 を設定します。

  • クライアント リクエスト

    $.ajax({
        type: "POST",
        url: "http://[サーバー]/[アプリケーション]/api/xxxx",
        data: {
            name: "鉛筆",
            price: 128
        }
    });
    
  • 呼び出される サーバー処理

    public class XxxxController
    {
        public void Post([FromBody]Product product)
        {
            // 以下のイスタンスが引数に渡された状態で呼び出される
            // product = new {
            //     name = "鉛筆",
            //     price = 128
            // }
        }
    }