2012-10-17 14 views
7

Basit soru: Kaynakta HTTP POST/PUT yöntemi ile veri (içerik) göndermiyorsam - yine de RESTful? Açıkçası, soru hangi durumda veri olmadan PUT kullanmak isteyeyim sorusu açıktır. Şifresini sıfırlamak isteyen bir kullanıcı düşünün (this older topic'da olduğu gibi).PUT veri olmadan, bu RESTful mı?

Bunun hakkında ne düşünüyorsunuz? POST/PUT yöntemleriyle içerik göndermek için sorun değil mi? Şahsen ben onunla hiçbir sorunum yok ama sadece diğer insanların ne diyeceğini merak ediyorum.

cevap

5

Evet, bu kesinlikle kabul edilebilir. Veri olmadan gerçekleştirildiğinde her eylem (bir koleksiyona POST, bir kaynak için PST) yeni bir "boş" kaynak oluşturmalıdır. Burada "boş" tanımı, temsil edilene bağlı olacaktır. Bununla birlikte, bir kullanıcının parolasını sıfırlama özel durumunda, yukarıdaki modelin geçerli olduğunu söylemem. Gerçekten bir şifre kaynağı varsa, veri içermeyen bir PUT, şifreyi sıfırlamak yerine boş olarak ayarlamayı önerecektir. Bu senaryo için, bu sorunun kabul edilen cevabı ile giderdim.

3

POST veya PUT durumunda, Restful olması için veriye ihtiyacınız yoktur. Bir şey yapıyorsanız, Idempotent (istek kaynağı değiştirecek ya da oluşturacaktır), GET kullanmak (geçmek için herhangi bir veri olup olmadığını) kullanmak istemezsiniz. Örneğin, isteğin zamanını ve kaynak URL'sini bir kaynak oluşturmak veya değiştirmek için ihtiyaç duyduğu kadar isabet eden bir RESTful web hizmeti olabilir.