در این پست از وبسایت پرووید در رابطه با بررسی یک POST Action Method با پارامترهای Primitive Type در ASP.NET Web API صحبت خواهیم کرد.

بررسی یک POST Action Method با پارامترهای Primitive Type در ASP.NET Web API

شاید بدانید که Action Method های POST برای ساختن Resource های جدید استفاده می شوند. آنها می توانند شامل داده‌هایی در Request Body و یا Query String باشند. Action Method زیر را در نظر بگیرید.

public class StudentController : ApiController
{
                    public Student Post(id id, string name)
    {
           
    }
}

همانطور که می بینید این Action Method دارای دو پارامتر ورودی از نوع Primitive Type ها می‌باشد. نام این دو پارامتر id و name است.

بسته ی آموزش اصول برنامه نویسی در ASP.NET Core

از شما دعوت می کنیم از بسته ی آموزش اصول برنامه نویسی در ASP.NET Core دیدن کنید.

بنابراین به صورت پیش‌فرض Web API سعی می ‌کند مقادیر این پارامترها را از درون Query String به دست بیاورد. برای مثال اگر HTTP Request شبیه http://localhost/api/student?id=1&name=steve باشد سپس مقادیر id و name به ترتیب 1 و Steve خواهد بود.

حال Action Method زیر را در نظر بگیرید.

public class Student
{
                    public int Id { get; set; }
                    public string Name { get; set; }
}

public class StudentController : ApiController
{
                    public Student Post(Student stud)
    {
           
    }
}

در این Action Method یک پارامتر تعریف شده است، منتها این پارامتر از انواع Primitive Type ها نیست. در واقع این پارامتر ورودی از نوع یک Type به اسم Student می باشد. به طور پیش فرض Web API سعی می ‌کند که مقدار مربوط به این پارامتر را از درون Request Body به دست بیاورد.

آموزش ساخت Web API در ASP.NET Core 2.0

از شما دعوت می کنیم از بسته ی آموزش ساخت Web API در ASP.NET Core 2.0 دیدن کنید.

در تصویر زیر یک HTTP POST Request را می بینید که توسط ابزار Fiddler به این ‏Web API و این Action Method ارسال شده است.

در واقع Web API سعی می کند JSON Object یا همان شی JSON ی که در Request Body می باشد را خوانده و آن را به یک شی از کلاس Student تبدیل کند. این موضوع به صورت خودکار اتفاق می‌افتد چرا که Property های درون JSON Object دقیقاً با Property های درون کلاس Student مطابقت دارند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *