Kullanıcı: freeman
freeman
09.05.2017 13:58 ~ 16.06.2017 03:04
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