API'mda "değişiklik değerleri al" özelliğini uygulamak istiyorum. Örneğin, şu REST API çağrısı var:Bir If-Modified-Since başlığına dayalı bir REST API temsilini değiştirmek için geçerli mi?
Bu, # 7 numaralı okuldaki tüm öğrencileri alır. Ne yazık ki, bu çok olabilir. Bu nedenle, yalnızca belirli bir zamandan beri değiştirilmiş olan öğrenci kayıtlarını döndürmek için API'yi değiştirmek istiyorum. (Kullanma durumu her gece bir süreç onların benim sistemden tüm öğrencileri çekmek için başka bir sistemden ishal.)
Ben http://blog.mugunthkumar.com/articles/restful-api-server-doing-it-the-right-way-part-2/ başlığındaki beri-modifiye eğer-ve bir temsilini dönen aşağıdaki gibi kullanılmasını önerir bkz:
- Arama tüm öğrencilerin istenilen yana güncellenen değişiklikte-beri başlığında
- herhangi varsa, bir 200 OK varsa hiçbir öğrenci bu sorgudan döndürülen
- , dönüş karşısında öğrencilere iade Bir 304 Değiştirilmemiş
Ne yapmak istediğini anlıyorum, ama bunun yanlış gitmesi gerekiyor. tanımı ise-Modified-yana başlığı (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24) der:
Eğer-Modified-yana istek başlık alanı koşullu yapmak için bir yöntem ile kullanılır: istenen varyant sonra değiştirilmiş edilmemiş ise Bu alanda belirtilen süre, bir sunucudan sunucuya iade edilmeyecektir; bunun yerine, herhangi bir mesaj gövdesi olmadan bir 304 (değiştirilmemiş) yanıtı iade edilecektir.
Bu benim için yanlış görünüyor. RFC tarafından belirtildiği gibi gösterim veya bir 304'ü iade etmeyeceğiz, ancak bazı melezler. İstemci yan kodu (veya daha kötüsü, sunucu ve istemci arasındaki bir web önbelleği) anlamı yanlış yorumlayabiliyor ve yerel önbelleğe alınmış değeri değiştirebiliyor.
Yani, iki soru:
- bu başlığın doğru kullanımı var mı?
- Değilse (ve bundan şüpheleniyorum), en iyi uygulama hangisidir? Sorgu dizesi parametresi?
Doğrulama için teşekkürler, bas adam. Tam da benim düşüncem vardı. – fool4jesus