मैं एक ऐसी परियोजना पर काम कर रहा हूं जिसमें हम डोमेन-संचालित डिज़ाइन और REST दोनों को एक सेवा-उन्मुख वास्तुकला में लागू करने का प्रयास कर रहे हैं। हम 100% REST अनुपालन की चिंता नहीं कर रहे हैं; यह कहना बेहतर होगा कि हम संसाधन-उन्मुख HTTP APIs बनाने की कोशिश कर रहे हैं (~ रिचर्डसन के REST परिपक्वता अवधि के स्तर 2 )। फिर भी, हम HTTP अनुरोधों के RPC- शैली के उपयोग से दूर रहने की कोशिश कर रहे हैं, अर्थात हम उदाहरण के लिए, उपयोग करने के बजाय RFC2616 के अनुसार अपने HTTP क्रियाओं को लागू करने का प्रयास POST
करते हैं IsPostalAddressValid(...)
।
हालाँकि, इस पर एक जोर डोमेन-संचालित डिज़ाइन को लागू करने के हमारे प्रयास की कीमत पर लगता है। केवल के साथ GET
, POST
, PUT
, DELETE
और कुछ अन्य शायद ही कभी इस्तेमाल किया तरीकों, हम cruddy सेवाओं का निर्माण करते हैं, और cruddy सेवाओं कमजोर डोमेन मॉडल हो जाते हैं।
POST
: डेटा प्राप्त करें, इसे मान्य करें, इसे डेटा पर डंप करें। GET
: डेटा पुनर्प्राप्त करें, इसे वापस लौटाएं। वहां कोई वास्तविक व्यापार तर्क नहीं है। हम सेवाओं के बीच संदेशों (घटनाओं) का भी उपयोग करते हैं, और यह मुझे लगता है कि अधिकांश व्यापारिक तर्क समाप्त हो जाते हैं।
क्या REST और DDD कुछ स्तर पर तनाव में हैं? (या क्या मैं यहां कुछ गलत समझ रहा हूं? क्या हम शायद कुछ और गलत कर रहे हैं?) क्या आरपीसी-स्टाइल HTTP कॉल से बचते हुए सेवा उन्मुख वास्तुकला में एक मजबूत डोमेन मॉडल बनाना संभव है?
IsPostalAddressValid(...)
"डेटा का एक ब्लॉक प्रदान करना, जैसे कि फॉर्म सबमिट करने, डेटा से निपटने की प्रक्रिया के परिणामस्वरूप" फिट होगा?