ETag ve If-Match ile iyimser eşzamanlılığın test edilmesi

Kayıp güncellemeler, herhangi bir CRUD uygulamasındaki en sessiz hatadır: iki istemci aynı kaydı okur, ikisi de yazar ve ikincisi sessizce birincisinin çalışmasını yok sayar. İyimser eşzamanlılık bunu, başa çıkabileceğiniz bir 412 hatasına dönüştürür. Kataloğun çoğu bunu desteklediği için hem sorunsuz senaryoyu hem de çakışmayı prova edebilirsiniz.

ETag ve If-Match testleri — request and response sequence Sequence diagram for ETag and If-Match testing: GET /football/v1/standings answers 304 Not Modified. PUT /airline/v1/bookings/{id}/seat answers 412 Precondition Failed. Your client Fun API Playground GET /football/v1/standings 304 Not Modified Lig tablosu — önbelleğe alınabilir (ETag / If-None-Match / 304) PUT /airline/v1/bookings/{id}/seat 412 Precondition Failed Koltuk değiştirme (If-Match eşzamanlılığı)
Katalogdaki gerçek uç noktalar — yukarıdaki her istek karşılanıyor ve gösterilen her durum kodu, o uç noktanın gerçekten döndürdüğü bir koddur.

Bunu nasıl uygulayabilirsiniz?

  1. Kaynağı GET ile okuyup ETag değerini saklayın. If-Match ile PUT gönderin ve yazmanın başarılı olduğunu doğrulayın.
  2. İkinci bir istekle kaynağı değiştirin; ilk PUT isteğini eski ETag ile yineleyip 412 aldığınızı doğrulayın.
  3. If-Match olmadan yazmayı deneyin. Uç nokta buna izin veriyorsa başka bir güncellemenin üzerine yazma riskini inceleyin.
  4. If-None-Match ile koşullu GET gönderin; veri değişmediyse 304 aldığınızı doğrulayın.
  5. Retro Quest kayıt çakışması uç noktalarında oyun kaydı sürümleriyle aynı yaklaşımı deneyin.

Denemek için API'ler

İlgili durum kodları

Diğer teknikler

Başlangıç rehberi · 39 mock REST API’nin tamamı

Son güncelleme