मैं HTTP API डिज़ाइन करने की प्रक्रिया में हूँ, उम्मीद है कि इसे यथासंभव Restful बनाऊँगा।
कुछ क्रियाएं हैं जो कार्यक्षमता कुछ संसाधनों पर फैलती हैं, और कुछ समय के लिए पूर्ववत होना आवश्यक है।
मैंने खुद से सोचा, यह एक कमांड पैटर्न की तरह लगता है, लेकिन मैं इसे एक संसाधन में कैसे मॉडल कर सकता हूं?
मैं एक्सएक्सएशन नामक एक नए संसाधन का परिचय करूंगा, जैसे डिपॉजिशन, जो कुछ इस तरह से बनाया जाएगा
POST /card/{card-id}/account/{account-id}/Deposit
AmountToDeposit=100, different parameters...
यह वास्तव में एक नया डिपाजिटेशन बनाएगा और इसे Do / Execute विधि सक्रिय करेगा। इस मामले में, 201 निर्मित HTTP स्थिति लौटने का मतलब है कि कार्रवाई सफलतापूर्वक निष्पादित की गई है।
बाद में यदि कोई ग्राहक अपने कार्य विवरण को देख सकता है
GET /action/{action-id}
अपडेट / पीयूटी को अवरुद्ध किया जाना चाहिए मुझे लगता है, क्योंकि यह यहां प्रासंगिक नहीं है।
और कार्रवाई को पूर्ववत करने के लिए, मैंने उपयोग करने के बारे में सोचा
DELETE /action/{action-id}
जो वास्तव में संबंधित वस्तु के पूर्ववत विधि को कॉल करेगा, और इसे स्थिति बदल देगा।
मान लीजिए कि मैं केवल एक Do-Undo से खुश हूं, मुझे Redo की आवश्यकता नहीं है।
क्या यह दृष्टिकोण ठीक है?
क्या इसका उपयोग न करने के कोई कारण हैं?
क्या यह क्लाइंट्स के POV से समझा जाता है?