سیستم مسیریابی یا Routing در WebAPI

shape
shape
shape
shape
shape
shape
shape
shape

آموزش Routing یا مسیر یابی در web api

در WebAPI تمام درخواستهای http تحت سیستم مسیریابی (Routing System) است که مدیریت درخواستها را تصمیم گیری می نماید. هدف اصلی از سیستم مسیریابی برای تصمیم گیری و پاسخ به این سوال می باشد : چه متدی از کدام کنترل بهتر است تا آن درخواست را انجام دهد؟ در این مطلب در مورد سیستم مسیریابی یا Routing در WebAPI توضیح میدهیم

هنگامی که ما یک برنامه ساده از نوع WebAPI ایجاد می کنیم template مانند زیر به صورت خودکار یک Route (مسیر) پیش فرض برای ما تولید می کند :

متد config.Routes.MapHttpRoute شامل 3 پارامتر زیر می باشد :

1- نام مسیر (“DefaultApi”)

2- مسیر Template : یک Template همراه با API و 2 placeholder (کنترلر و id)

3-مقدار پیش فرض : در این مورد، Id در درخواست اجباری نمی باشد.

اگر شما از MVC استفاده می کنید شما شباهت های زیادی پیدا خواهید کرد. در MVC یک متد برای قالب مسیریابی وجود دارد اما در اینجا این متد موجود نیست. این تفاوت اصلی میان 2 سیستم مسیر یابی در WebAPI است.

الگوی پیش فرض مسیریابی در یک پروژه MVC یه صورت زیر تعریف می شود :

اگر سیستم مسیریابی یک مسیر متناسب با الگوی خود پیدا نکند HTTP 404 برمی گرداند.

برای آنکه تصمیم بگیرد کدام متد صدا زده شود سیسم مسیر یابی باید متد HTTP را آنالیز نماید. اگر ما یک درخواست GET در سرور داشته باشیم اکشن باید چیزی شبیه ()GetResource باشد. اما اگر Post باشد اکشن باید ()PostResource باشد

هنگامی که مسیرها را تغییر می دهیم یا مسیر جدیدی در برنامه اضافه می کنیم :

در اینجا 3 نام مسیر جدید از همه مسیر های جدید داریم. آنها یکی نیستند و همه Template مسیرها شامل PlaceHolder های متنوع هستند و در همه مسیر ها id اختیاری است.

برای مثال زیر یک کنترلر با نام ValuesController اضافه شده است.

حال خروجی های بدست آمده از url های بالا را مشاهده می کنیم :

1- api/values/GetAll :

2- api/values/Getdetail/1 :

3- api/values/GetEmployeDetailByTest/2 :

در بالا همه فراخوانی ها از نوع Get هستند. اگر Post بودند با خطاهای زیر مواجه می شدیم :

The requested resource does not support http method ‘POST’

ویژگی هایی که همه متدهای HTTP را پشتیبانی می کنند در زیر مشاهده می نمایید :

HttpGet

HttpPost

HttpPut

HttpOptions

HttpPatch

HttpDelete

HttpHead

نتیجه گیری
در این مقاله نحوه مسیردهی در WebAPI و همچنین تفاوت های موجود در مسیردهی بین MVC و WebAPI را بررسی کردیم.

منبع

پاسخی بگذارید

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