Genel olarak x'in tüm koleksiyonunu temsil eden bir son noktaya sahipsiniz :
/products
Diyelim ki, tek bir ürünü güncellemek istiyorsanız, bir PUT yapın /products/{id}
. Tek bir ürünü kısmen güncellemek istiyorsanız (her alanı güncellemiyorsanız), ayrıca bir PATCH kullanabilirsiniz /products/{id}
. Aynı şey, tek bir varlığın silinmesi için de geçerlidir ( DELETE to /products/{id}
).
Eğer bir hedeflemek istiyorsanız tek Ressource, sen hangi yoldan hak bekar , değiştirmek istediğiniz ressource.
Programı bozan tek eylem, kaynakların yaratılmasıdır . Bir bütün olarak toplanmasını hedefleyen bir Ressource oluştururken, demek POST için /products
.
Bununla birlikte, toplama işlemini bir bütün olarak etkileyen işlemler için hedefin uygun toplama bitiş noktasına gitmesi gerektiği açıktır.
Örneğin, kırmızı olan bir ürün alt grubunu almak istiyorsanız,
GET için /products?colour=red
.
Yani, bunların tümünü silmek istiyorsanız, SİLİNİZ /products?colour=red
. Veya ürünlerden bazılarını silmek id
isterseniz, DELETE (SİLME) yapabilirsiniz /products?id=1&id=2&id=3
.
Kaynakların toplu olarak oluşturulmasına ne dersiniz ? Koleksiyonunuzu sadece için POST . Aynı PUT ve PATCH için de geçerli .[{...},{...},{...}]
/products
Bu gerçekten basit.
Sorularınıza cevap vermek için:
Koleksiyona eklemem gerekirse, sadece PUT’lu bazı ürünlerden geçmem uygun mudur?
Sadece sorun değil, böyle yapmaya teşvik edilirsiniz.
Bazı ürünleri koleksiyondan silmem gerekirse, DELETE ile filtre verilerini (bir dizi kimlik) iletmem tamam mı?
Sorun yok. Eneko Alonso belirttiği gibi, bazen vardır bulkoperations yani, bir "kontrol" -endpoints yoluyla kapsüllenmiş SONRASI tetik (kompleks) işlemleri için kullanılır.