Bir müşteri yönetim sistemi için RESTful hizmeti yazıyorum ve kayıtları kısmen güncellemek için en iyi uygulamayı bulmaya çalışıyorum. Örneğin, arayanın bir GET isteği ile tam kaydı okuyabilmesini istiyorum. Ancak güncelleme için, durumu ETKİN'den DEVRE DIŞI olarak değiştirmek gibi yalnızca kayıttaki belirli işlemlere izin verilir. (Bundan daha karmaşık senaryolarım var)
Arayan kişinin tüm kayıtları güvenlik nedeniyle sadece güncellenmiş alanla göndermesini istemiyorum (ayrıca aşırıya kaçma gibi geliyor).
URI'leri oluşturmanın önerilen bir yolu var mı? REST kitaplarını okurken RPC tarzı çağrılar hoşnutsuz görünüyor.
Aşağıdaki çağrı, 123 numaralı kimliğe sahip müşteri için tam müşteri kaydını döndürürse
GET /customer/123
<customer>
{lots of attributes}
<status>ENABLED</status>
{even more attributes}
</customer>
durumu nasıl güncellemeliyim?
POST /customer/123/status
<status>DISABLED</status>
POST /customer/123/changeStatus
DISABLED
...
Güncelleme : Soruyu arttırmak için. Kişi 'iş mantığı çağrılarını' bir REST API'sine nasıl dahil eder? Bunu yapmanın kabul edilmiş bir yolu var mı? Tüm yöntemler doğası gereği CRUD değildir. Bazıları ' sendEmailToCustomer (123) ', ' mergeCustomers (123, 456) ', ' countCustomers () ' gibi daha karmaşıktır
POST /customer/123?cmd=sendEmail
POST /cmd/sendEmail?customerId=123
GET /customer/count
POST
Roy Fielding'in kendisinden bir yazı : roy.gbiv.com/untangled/2009/it-is-okay-to-use-post temel fikir nerede: varsa Operasyon kullanımınıza en uygun yöntem (GET
veyaPUT
) değildirPOST
.