Kaynak durum makinesi

Pek çok kaynağın bir yaşam döngüsü vardır: bir sipariş verilir, ödenir, kargolanır ve teslim edilir; bir fırlatma planlanır, iptal edilir ya da gerçekleşir. Bunu bir durum makinesi olarak modellemek, durumları ve aralarında izin verilen geçişleri listelemek ve geri kalan her şeyi reddetmek demektir — hiç ödenmemiş bir siparişi kargolayamaz, teslim edilmiş birini iptal edemezsiniz.

Nasıl çalışır

Geçişler genellikle eylemler olarak — POST /orders/7/cancel — ya da sunucunun doğruladığı bir durum alanına yapılan güncelleme olarak sunulur. Geçersiz bir geçiş 409 Conflict döner; çünkü istek iyi biçimlidir ama kaynağın mevcut durumuyla çelişir. HATEOAS tarzı yanıtlar yalnızca o an geçerli geçişlerin bağlantılarını içerebilir.

Yaygın yanılgı

Durumun sıradan bir alan olduğu sanılır. Durumu genel bir PUT ile serbestçe ayarlayan bir istemci, işin dayandığı durumları atlayabilir — iptalsiz iadeler, kargosuz teslimatlar. Sözleşme alan değil, geçişlerdir.

Burada deneyin

Cargo Tracking API’si tam bir durum makinesidir: POST /cargo/v1/shipments/{id}/advance bir koliyi bir adım ilerletir ve hattın sonunda 409 döner; üç başarısız teslimat denemesi de koliyi göndericiye iade eder.

İlgili

Kaynaklar

Diğer terimler

Bu sayfayı İngilizce okuyun

Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı

Son güncelleme