Sobes.tech
Senior

Mi az azonosítás?

sobes.tech MI

Válasz az MI-től

Az idempotencia egy olyan művelet tulajdonsága, amely szerint ugyanazzal a bemeneti adatokkal végrehajtva ugyanazt az eredményt kapjuk, mintha a műveletet csak egyszer hajtottuk volna végre.

Webszolgáltatások vagy API-k kontextusában ez azt jelenti, hogy az ismételt kérés nem fogja további módon megváltoztatni a rendszer állapotát.

Az idempotens HTTP-módszer példája a PUT, amely frissíti az erőforrást. Ha ugyanazt a PUT-kérést többször küldjük, az eredmény ugyanaz lesz.

Go nyelven az idempotenciát például úgy lehet biztosítani, hogy ellenőrizzük a rekord meglétét az beszúrás előtt:

func CreateUser(id string, data UserData) error {
    if userExists(id) {
        return nil // már létrehozva, az művelet idempotens
    }
    return insertUser(id, data)
}

Így a CreateUser hívása ugyanazzal az id-vel többször nem fog hibát vagy duplikátumokat okozni.