एपीआई में मैं एक बड़ी संख्या में काम कर रहा हूं, जो आईडी के एक सरणी को स्वीकार करता है:
["1000", ..., "2000"]
मैं हटाए गए ऑपरेशन को लागू करने के लिए स्वतंत्र था क्योंकि मैंने फिट देखा था, इसलिए मैंने पूरी बात को लेन-देन करने का फैसला किया: अर्थात, यदि कोई एकल आईडी अमान्य है, तो संपूर्ण अनुरोध विफल हो जाता है। मैं इसे सख्त मोड कहूंगा ।
try{
savepoint = conn.setSavepoint();
for(id : IDs)
if( !deleteItem(id) ){
conn.rollback(savepoint);
sendHttp400AndBeDoneWithIt();
return;
}
conn.commit();
}
वैकल्पिक (हमारे सॉफ़्टवेयर सूट में कहीं और लागू किया गया है) यह करना है कि हम बैकएंड में क्या कर सकते हैं, और एक सरणी में विफलताओं की रिपोर्ट करें। सॉफ़्टवेयर का वह हिस्सा कम अनुरोधों के साथ काम करता है इसलिए प्रतिक्रिया सिद्धांत रूप में विशालकाय सरणी होने का अंत नहीं करती है।
संसाधन-खराब सर्वर में हाल ही में आई बग ने मुझे फिर से कोड को देखा, और अब मैं अपने मूल निर्णय पर सवाल उठा रहा हूं - लेकिन इस बार मैं सर्वोत्तम प्रथाओं के बजाय व्यावसायिक आवश्यकताओं से अधिक प्रेरित हूं। यदि, उदाहरण के लिए, मैं पूरे अनुरोध को विफल करता हूं, तो उपयोगकर्ता को फिर से प्रयास करना होगा जबकि यदि कई आइटम हटा दिए जाते हैं, तो उपयोगकर्ता कार्रवाई को समाप्त कर सकता है और फिर एक व्यवस्थापक को बाकी काम करने के लिए कह सकता है (जबकि मैं बग को ठीक करने पर काम करता हूं !)। यह अनुमेय विधा होगी।
मैंने मामले पर कुछ मार्गदर्शन के लिए ऑनलाइन तलाश करने की कोशिश की, लेकिन मैं खाली हाथ आया हूं। इसलिए मैं आपके पास आता हूं: इस प्रकृति के थोक संचालन से सबसे अधिक क्या उम्मीद है? क्या मुझे और अधिक सख्त होना चाहिए, या क्या मुझे अधिक अनुमति होनी चाहिए?