Senior
Mi az az idempotencia? Tudnád példákkal elmagyarázni HTTP-módszerekkel?
sobes.tech MI
Válasz az MI-től
Az idempotencia egy művelet tulajdonsága, amely szerint ennek a műveletnek a többszöri végrehajtása ugyanazt az eredményt adja, mint az egyszeri végrehajtás.
HTTP módszerek kontextusában:
- GET — idempotens, mivel a forrás lekérdezése nem változtatja meg a szerver állapotát, és az ismételt kérések ugyanazt az eredményt adják.
- PUT — idempotens, mert ugyanazzal az adatokkal többszöri frissítés ugyanarra az állapotra vezet.
- DELETE — idempotens, mert többszöri törlés ugyanazt az eredményt adja az első törlés után (a forrás már törölve van).
- POST — nem idempotens, mivel minden kérés általában új erőforrást hoz létre vagy megváltoztatja a szerver állapotát, és az ismételt kérések eltérő eredményeket eredményezhetnek (például több rekord létrehozása).
Példa:
PUT /users/123
{
"name": "Иван"
}
Ha ezt a kérést többször végrehajtja, az 123-as azonosítójú felhasználó neve "Иван" lesz — az állapot az első kérés után nem változik.
Ezért az idempotencia fontos a API megbízhatósága és kiszámíthatósága szempontjából, különösen hálózati hibák miatti ismételt kérések esetén.