پرش به محتوا
صفحه اصلی traveldistro

اصطلاح

کلید idempotency

کلید idempotency مقدار یکتایی است که با درخواست فرستاده می‌شود تا تکرارها هرگز اثرات جانبی عملیات را دوباره اجرا نکنند.

کلید idempotency مقدار یکتایی است که فراخواننده به درخواستی با اثر جانبی می‌چسباند تا سرور بتواند تکرارِ همان عملیات را تشخیص دهد و به جای اجرای دوباره، نتیجه اصلی را برگرداند.

در APIهای سفر، کاربرد کانونی رزرو است. تایم‌اوت پس از درخواست رزرو، فراخواننده را کور می‌گذارد: موفق شد؟ با کلید idempotency فراخواننده با همان کلید تکرار می‌کند و پاسخ قطعی می‌گیرد؛ هرگز رزرو تکراری ساخته نمی‌شود.

دو قانون این سازوکار را امن می‌کنند. کلید باید به ازای هر نیت یکتا باشد و هرگز برای رزرو دیگری دوباره استفاده نشود. سرور هم باید رسیدن همان کلید با بدنه متفاوت را رد کند؛ در traveldistro این با کد IDEMPOTENCY_CONFLICT یک 409 برمی‌گرداند. برای رفتار کامل تکرار، راهنمای idempotency و صفحه پایایی را ببینید.