2012-11-19 25 views
6

Koleksiyonlardan birinin sınırlı olduğu (UX nedenleriyle) huzurlu bir hizmetim var. Bu durumda 25 maddelik bir kapağı vardır. Bu aşılırsa, daha fazla eklenmeden önce kaynaklar silinmelidir.Sınırlı koleksiyon için HTTP durum kodu?

POST http://somesite.com/api/v2/stuff 
{"cool":"stuff"} 

doldurulması halinde < 25 şey vardır: Örnek olarak bir istemci gönderirse

200 OK 

eğer şeyler> 25 şey:

??? 

DELETE http://somesite.com/api/v2/stuff/:id 

POST http://somesite.com/api/v2/stuff 
{"cool":"stuff"} 

200 OK 

iyi kod nedir bunun için? Düz 400? 409 ÇATIŞMA? 429? Yok çok haklı görünüyor ..

+2

409 Çatışma benim için doğru görünüyor çünkü (a) bir kaynak durumu sorunu ve (b) kullanıcı çözümlenebilir. – Alohci

cevap

8

kullanın 409. httpbis section 7.5.8 Gönderen:.

"isteği tamamlanamadı dolayı kaynağın güncel devletle çatışması Bu kod yalnızca durumlarda nerede izin verilir , kullanıcının çakışmayı çözebileceği ve isteğini yeniden gönderebileceği beklenir.Kullanıcı, kullanıcının çakışma kaynağını tanıması için yeterli bilgi içermelidir. " Senin durumunda

, kaynak http://somesite.com/api/v2/stuff tarafından tanımlanan biridir ve POST nedeniyle istek (zaten maxed olmasıdır) geçerli durumuna sahip bir çatışma tamamlanamaz. Yanıtınıza, mevcut üyelerden birini silmek, limiti kaldırmak veya başka bir işlem yapmak için kullanıcıya yeterli bilgi (tercihen bağlantılar) verin. Daha sonra orijinal isteği tekrar gönderebilirler.

+0

Evet, açıklama uygun ve en iyi olabileceğini düşündüm. Çatışma sadece biraz ses çıkardı .. ham = | – Scott

İlgili konular