Backward Compatibility یعنی نسخه جدید یک نرمافزار یا رابط، همچنان با دادهها، قراردادها یا کلاینتهای نسخه قبلی سازگار بماند. اگر تغییر جدید باعث شود مصرفکنندگان قدیمی دیگر نتوانند بدون اصلاح از سیستم استفاده کنند، با یک Breaking Change روبهرو هستیم.
تغییر نام فیلد API، حذف یک پارامتر یا تغییر قالب داده میتواند سازگاری عقبرو را بشکند. نسخهبندی API، دوره مهاجرت و مستندسازی تغییرات به کاهش اثر این نوع تغییر کمک میکند.
یک سناریوی کاربردی
حذف یک فیلد از خروجی JSON ممکن است کلاینت موبایلی را خراب کند که هنوز از نسخه قدیمی API استفاده میکند. راهکار میتواند افزودن فیلد جدید در کنار فیلد قبلی و اعلام دوره حذف تدریجی باشد.
مثال تغییر ناسازگار در API
اگر مسیر GET /products/42 قبلاً فیلد price را عددی برمیگرداند و در نسخه جدید ناگهان آن را به رشته همراه واحد پول تبدیل کنیم، مصرفکنندههای قدیمی ممکن است خطا کنند. بهتر است قرارداد API نسخهبندی شود یا فیلد جدید تا پایان دوره مهاجرت کنار فیلد قبلی وجود داشته باشد.