معرفی Web API Versioning

زمانی که یک API عمومی می شود، کلاینت های مختلفی از آن استفاده می کنند و بخشی از Business آنها وابسته به آن API می شود. با توسعه ی Business و یا تغییر نیازمندی ها، نیاز به تغییرات در API حس می شود. اما این تغییرات نباید به گونه ای باشد تا در عملکرد API خللی وارد شود. در اینجا بحث Versioning کردن API مطرح می شود. در این صورت هم کلاینت های قدیمی می توانند از API استفاده کنند و هم کلاینت های جدید.

به چند طریق می توان از Web API Versioning استفاده کرد:

  • URL Routing
  • Query String
  • HTTP Header
  • Accept Header
  • Media Type

که روش های URL Routing, QueryString, HTTP Header از بقیه ی روش ها معروف تر هستند.

Versioning از طریق URL Routing

می توان از طریق URI تعیین کرد که کاربر در حال استفاده از کدام نسخه از Web API است.

اولین قدم نصب یک NuGet به نام Microsoft.AspNetCore.Mvc.Versioning است. سپس باید در فایل Startup.cs در متد ConfigureService کد زیر را نوشت.

سپس به ازای هر ورژن، یک Controller باید نوشت. به کد زیر دقت کنید، این کنترلر مربوط به ورژن 1 است.

کنترلر زیر مربوط به ورژن دوم است

با هر تغییر باید در endpoint ها تغییر ایجاد شود. این یکی از اشکالات این روش است. برای حل این مشکل، دو روش دیگر نیز ارائه شده اند.

Versioning از طریق HTTP Header

در این روش باید از طریق هدر های درخواست HTTP، تعیین کنید که می خواهید از کدام ورژن از API استفاده کنید. روش کار بدین صورت است که ابتدا باید در فایل Startup.cs در متد ConfigureService کد زیر را اضافه کرد.

در این روش هم مانند روش URL به ازای هر ورژن باید یک کنترلر نوشت. کنترلر اول مربوط به ورژن 1

کنترلر دوم مربوط به ورژن دوم

برای تست عملکرد API تنها کافی است در برنامه ی Postman ، در Request Header سربرگی به نام X-API-Version را اضافه کرد. به شکل زیر دقت کنید.

اگر این Header را در Header Request ننویسید، API از ورژن پیشفرض خود استفاده می کند.

Versioning از طریق Query String

در این روش باید ابتدا پارامتر های کوئری را بررسی کرده و مطابق با Version ای که در کوئری آمده است، پردازش را انجام دهید.

https://localhost/api/students?version=1

نوشته شده توسط mrbitmap علیرضا علی رمضانی

مقالات مرتبط

جدیدترین مقالات

فهرست