شماره تماس 09336863931 | 09178169907 پست الکترونیک provid.ir@gmail.com

آموزش شروع به کار با ASP.NET Web API قسمت #10

آموزش شروع به کار با ASP.NET Web API قسمت #10 یک سری آموزشی از وبسایت پرووید است که در رابطه با اصول مقدماتی ساخت Web API در ویژوال استادیو و دات نت تنظیم شده است. پس از این دوره ی آموزشی می توانید از بسته های آموزشی وبسایت پرووید در رابطه با Web API استفاده کنید.

بررسی Routing در Web API

در قسمت قبلی از این آموزش از وب سایت پرووید یاد گرفتید که Web API می‌تواند با استفاده از کلاس WebApiConfig پیکربندی شود و اما در این قسمت از این آموزش در رابطه با این که چگونه میتوانیم Route ها را در Web API پیکربندی کنیم صحبت خواهیم کرد.

انجام Routing در Web API بسیار شبیه به Routing در ASP.NET MVC است. به عبارت دیگر HTTP Request ها به یک Action Method خاص در یک Controller از Route می‌ شوند.

در Web API دو نوع Routing پشتیبانی می‌شود.

  • Convention-based Routing
  • Attribute Routing

ابتدا به بررسی Convention-based Routing می پردازیم.

بررسی Convention-based Routing در Web API

در Convention-based Routing در واقع Web API برای مشخص کردن اینکه کدام Controller و کدام Action Method باید یک HTTP Request را Handle کند از Route Template ها استفاده می ‌کند. حداقل باید یک Route Template در در Route Table اضافه شود تا بتوانیم HTTP Request های مختلف را Handle کنیم.

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

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

زمانی که یک پروژه Web API را با استفاده از Template پیش فرض ویژوال استودیو ایجاد می کنید یک کلاس با نام WebApiConfig در فولدر Application_Start ساخته می شود که به طور پیش فرض حاوی Route Template های برنامه Web API شما می باشد.

در کد زیر محتوای کلاس WebApiConfig را مشاهده می ‌کنید.

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Enable attribute routing
        config.MapHttpAttributeRoutes();
        
        // Add default route using convention-based routing
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

در این کلاس متد Register یک Route Template به Route Table اضافه کرده است. اتفاق دیگری که در کد بالا رخ داده است این است که در متد Registet با استفاده از متد config.MapHttpAttributeRoutes انجام عملیات Attribute Routing را که در قسمت های بعدی از این آموزش در رابطه با آن صحبت خواهیم کرد فعال کرده ایم.

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

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

علاوه بر این config.Routes یک Route Table یا یک Route Collection از نوع HttpRouteCollection می ‌باشد. ضمنا DefaultApi با استفاده از Extension Method ی با نام MapHttpRoute به این Route Table اضافه شده است. این Extension Method در درون خود یک Object از نوع IHttpRoute را ایجاد کرده و آن را به HttpRouteCollection اضافه می ‌کند. شما می‌ توانید یک Route جدید را به سادگی ایجاد کرده و آن را به این Collection اضافه کنید. کد زیر این موضوع را نشان می دهد.

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();
        
        // define route
        IHttpRoute defaultRoute = config.Routes.CreateRoute("api/{controller}/{id}", 
                                            new { id = RouteParameter.Optional }, null);
            
        // Add route
        config.Routes.Add("DefaultApi", defaultRoute);

    }
}

پیشنهاد می‌کنیم با رجوع کردن به MSDN پارامترهای مختلف متد MapHttpRoute را بررسی کنید. و اما در ادامه بیاید به این موضوع بپردازیم که چگونه یک HTTP Request توسط Web API هندل شده و HTTP Response مربوط به آن برگردانده میشود.

نظر بدهید

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