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.
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.
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.
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.
Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı
Son güncelleme