اما امروز میخوام روی یه قسمت خاصش زوم کنیم که خیلی هم مهمه: نسخهبندی یا Versioning API.
چرا اصلاً نسخهبندی مهمه؟
فرض کن یه API خفن ساختی و کلی آدم دارن ازش استفاده میکنن (مثلاً اپلیکیشن موبایلشون بهش وصله). حالا میخوای یه تغییر بزرگ بدی یا یه قابلیت جدید اضافه کنی که ممکنه روش کارکرد قبلی رو خراب کنه. اگه همینجوری آپدیتش کنی، یهو میبینی اپلیکیشن کاربرات از کار افتاده و کلی آدم شاکی پشت خط داری!
اینجاست که نسخهبندی (Versioning) مثل یه فرشته نجات ظاهر میشه! بهت اجازه میده تغییرات جدید رو توی یه "نسخه" جدید از API اعمال کنی، در حالی که نسخه قبلی همچنان برای کاربرای قدیمی کار میکنه. اینطوری هم میتونی API رو بهروز نگه داری و هم کاربرای فعلی رو راضی نگه داری. مثل این میمونه که همزمان دو تا جاده داشته باشی؛ یکی جاده قدیم برای ماشینهای قدیمی، یکی هم اتوبان جدید برای اونایی که میخوان سریعتر برن!
عکس چی میگه؟
توی عکس، ردیف چهارم دقیقاً به همین موضوع اشاره کرده:
* ❌
GET /carts/v1/123 (روش نامناسب)* ✅
GET /v1/carts/123 (روش مناسب)این یعنی چی؟ یعنی پیشنهاد میکنه که شماره نسخه (مثل
v1 برای نسخه اول) رو اول آدرس URL بیاریم. این کار چند تا مزیت داره:1. واضحه: همون اول کار مشخصه که داریم با کدوم نسخه از API کار میکنیم.
2. مسیریابی (Routing) راحتتره: برای سرور راحتتره که درخواستها رو بر اساس نسخه به کد مربوطه هدایت کنه.
راههای دیگه برای نسخهبندی هم هست؟
آره! روشی که توی عکس اومده (گذاشتن نسخه توی URL Path) خیلی رایجه، اما تنها راه نیست. چند تا روش متداول دیگه هم داریم:
1. Query Parameter: نسخه رو مثل یه پارامتر عادی توی URL میفرستیم:
GET /carts/123?version=1این روش URL رو شلوغ نمیکنه ولی شاید یه کم کمتر به چشم بیاد.
2. Custom Request Header: نسخه رو توی هِدِر (Header) درخواست میفرستیم:
Accept: application/vnd.yourapi.v1+jsonاین روش URL رو کاملاً تمیز نگه میداره و از نظر معنایی هم شاید درستتر باشه، ولی کار کردن و تست کردنش با مرورگر یه کم سختتره.
کدوم روش بهتره؟
هیچکدوم ذاتاً "بهترین" نیستن. انتخابش بستگی به نیاز پروژه، راحتی تیم و استانداردهایی داره که استفاده میکنید. روش URL Path (همونی که تو عکسه) خیلی محبوبه چون ساده و شفافه.
جمعبندی
نسخهبندی API یه موضوع حیاتی برای مدیریت تغییرات و تکامل APIهاست، بدون اینکه کاربرای فعلی رو اذیت کنیم. این عکس باحال یه روش خوب و رایج (گذاشتن نسخه اول URL) رو پیشنهاد میده. یادت باشه که روشهای دیگهای هم هست و مهمه که از همون اول طراحی API به فکر نسخهبندی باشی.
در کل، این عکس یه منبع عالی پر از نکات کاربردی برای طراحی API هست. حتماً بقیه مواردش رو هم یه نگاه بنداز!
🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode 🖥👨💻
