Restful işleyişinde, bir değer için kaynağı bir defa etkileyip aynı değer için kaynağa bir daha etki etmeyen http metotlarını ifade eder.
a = 4
Yukarıdaki işlem bir idempotent işlemdir. Bu kodu 1 milyon defa çalıştırsanız da sonuç değişmez; "a" her zaman 4'e eşit olacaktır.
a++
Bu örnekteyse işlem idempotent değildir çünkü kod çalıştıkça "a" her seferinde farklı bir şey olacaktır. Böyle bir işlemi PUT metoduyla erişilen bir endpointe koyamazsınız, koysanız bile çıktı olarak a değerinin sonucunu veremezsiniz. Çünkü put metodunda beklenti
n => (a=n) => n şeklindedir.
n => (a=x) => x şeklinde bir output bizi restful mantığından uzaklaştırmış olur.
Idempotent metotlar "a++" gibi işlemler yapamaz diye bir kural yok. Örneğin idempotent bir metodun arkasında barınan bir endpoint var ve burada bir veritabanı kaydını güncellemişsek genellikle update-time bilgisini de güncellemek isteriz. Bunda problem yok ancak bu bilgiyi çıktı olarak veremeyiz, yoksa
4 => (a = 4) => 4 beklentisini bozmuş oluruz.
Idempotent metotlar şunlardır;
bkz
options
bkz
get
bkz
head
bkz
put
bkz
delete
#programlama