कई संसाधनों का एक जीवनचक्र होता है: ऑर्डर दिया जाता है, भुगतान किया जाता है, भेजा जाता है और डिलीवर किया जाता है; लॉन्च की योजना बनाई जाती है, रद्द की जाती है या उसे पूरा किया जाता है। इसे स्टेट मशीन के रूप में मॉडल करने का अर्थ है स्टेट्स और उनके बीच अनुमत ट्रांज़िशन को सूचीबद्ध करना, और बाकी सब कुछ अस्वीकार करना — आप ऐसे ऑर्डर को शिप नहीं कर सकते जिसका भुगतान कभी नहीं हुआ हो, या ऐसे ऑर्डर को रद्द नहीं कर सकते जो डिलीवर हो चुका हो।
ट्रांज़िशन आमतौर पर क्रियाओं के रूप में प्रदर्शित होते हैं — POST /orders/7/cancel — या सर्वर द्वारा मान्य किए जाने वाले स्टेटस फ़ील्ड के अपडेट के रूप में। एक अवैध ट्रांज़िशन 409 कॉन्फ़्लिक्ट त्रुटि देता है, क्योंकि अनुरोध सही ढंग से बना होता है लेकिन संसाधन की वर्तमान स्थिति से मेल नहीं खाता। HATEOAS-शैली की प्रतिक्रियाओं में केवल उन ट्रांज़िशन के लिंक शामिल हो सकते हैं जो वर्तमान में वैध हैं।
वह स्थिति महज़ एक और फ़ील्ड है। एक ग्राहक जो सामान्य PUT अनुरोध के माध्यम से स्थिति को स्वतंत्र रूप से निर्धारित करता है, वह उन स्थितियों को छोड़ सकता है जिन पर व्यवसाय निर्भर करता है — रद्द किए बिना धनवापसी, शिपमेंट के बिना डिलीवरी। अनुबंध फ़ील्ड नहीं, बल्कि बदलाव हैं।
कार्गो ट्रैकिंग एपीआई एक पूर्ण स्टेट मशीन है: POST /cargo/v1/shipments/{id}/advance एक पार्सल को एक कदम आगे बढ़ाता है और लाइन के अंत में 409 का जवाब देता है, और तीन असफल डिलीवरी प्रयासों के बाद इसे प्रेषक को वापस कर दिया जाता है।
सभी शब्द · परीक्षण तकनीकें · सभी 39 मॉक REST API
आखरी अपडेट