در این پست از وبسایت پرووید در رابطه با بررسی Attribute Routing در ASP.NET Web API صحبت خواهیم کرد.

بررسی Attribute Routing در Web API

نوع دیگری از پیکربندی Routing استفاده از Attribute Routing است که در Web API 2 پشتیبانی می شود. همانطور که از نام این نوع Routing پیداست Attribute Routing از تعدادی Attribute استفاده می ‌کند. یکی از این Attribute ها [Route] نام دارد که می تواند بر روی هر Controller ی و هر Action Method ی اضافه شود.

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

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

به منظور استفاده از Attribute Routing ابتدا باید با استفاده از متد config.MapHttpAttributeRoutes در کلاس 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 }
        );
    }
}

لطفاً کد زیر که مثالی از Attribute Routing است را در نظر بگیرید.

public class StudentController : ApiController
{
    [Route("api/student/names")]
                public IEnumerable<string> Get()
    {
                return new string[] { "student1", "student2" };
    }
}

در کد بالا Route ی به صورت api/student/names را تعریف کرده است. بنابراین Action Method ای با نام Get از StudentController تمامی HTTP Request هایی که به شکل api/student/names می باشند را Handle می کند.

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

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

برای مثال اگر یک HTTP Request از نوع Get با URL ای به شکل http://localhost:1234/api/student/names به Web API وارد شود توسط این Action Method از این Controller هندل شده و یک آرایه از نام دانش آموزان برگردانده می شود.

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

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