Bir koleksiyonun toptan olarak değiştirilmesine izin verdim, örneğin PUT ~/people/123/shoes
bedenin koleksiyonun tamamı olduğu durumlarda.
Bu, istemcinin öğeleri gözden geçirmek ve bazılarını çıkarmak ve bazılarını eklemek ve ardından sunucuyu güncellemek istediği küçük alt öğe koleksiyonları için çalışır. Tümünü silmek için boş bir koleksiyon PUT yapabilirler.
Bu, GET ~/people/123/shoes/9
bir PUT onu silmiş olsa bile hala önbellekte kalacağı anlamına gelir , ancak bu yalnızca bir önbelleğe alma sorunu ve başka bir kişi ayakkabıyı silerse bir sorun olur.
Verilerim / sistem API'lerim, sona erme sürelerinin aksine her zaman ETag'leri kullanır, böylece sunucu her istek üzerine vurulur ve verileri değiştirmek için doğru sürüm / eşzamanlılık başlıklarına ihtiyacım var. Salt okunur ve görünüm / rapor hizalı API'ler için, başlangıçtaki isabetleri azaltmak için sona erme sürelerini kullanıyorum, örneğin bir lider panosu 10 dakika için iyi olabilir.
Çok daha büyük koleksiyonlar için, örneğin ~/people
, birden fazla silmeye ihtiyaç duymuyorum, kullanım durumu doğal olarak ortaya çıkmama eğilimindedir ve bu nedenle tek bir DELETE iyi çalışır.
Gelecekte, REST API'leri oluşturma ve denetim gibi aynı sorunları ve gereksinimleri karşılama konusundaki deneyimim sayesinde, yalnızca GET ve POST fiillerini kullanmaya ve olayların etrafında tasarım yapmaya meyilli olacağım, örneğin POST a adres değişikliği olayı, ancak bundan şüpheleniyorum Kendi problemleriyle gelecek :)
Ayrıca ön uç geliştiricilerin, katı "Fielding zealot" REST API tasarımlarından hoşlanmadıklarının pratik, geçerli müşteri tarafı nedenleri olduğundan ve üretkenlik ve önbellek katmanlama nedenleri.