मुझे इस बात की चिंता है कि हम क्लाइंट को क्या गलतियाँ देते हैं।
क्या हम त्रुटि मिलने पर HttpResponseException को फेंककर तुरंत त्रुटि लौटाते हैं :
public void Post(Customer customer)
{
if (string.IsNullOrEmpty(customer.Name))
{
throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
}
if (customer.Accounts.Count == 0)
{
throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest)
}
}
या हम सभी त्रुटियों को जमा करते हैं फिर ग्राहक को वापस भेजते हैं:
public void Post(Customer customer)
{
List<string> errors = new List<string>();
if (string.IsNullOrEmpty(customer.Name))
{
errors.Add("Customer Name cannot be empty");
}
if (customer.Accounts.Count == 0)
{
errors.Add("Customer does not have any account");
}
var responseMessage = new HttpResponseMessage<List<string>>(errors, HttpStatusCode.BadRequest);
throw new HttpResponseException(responseMessage);
}
यह सिर्फ एक नमूना कोड है, यह या तो सत्यापन त्रुटियों या सर्वर त्रुटि से कोई फर्क नहीं पड़ता, मैं सिर्फ सबसे अच्छा अभ्यास, प्रत्येक दृष्टिकोण के पेशेवरों और विपक्षों को जानना चाहूंगा।
HttpResponseException
कक्षा के किसी भी निर्माता को अधिभार नहीं दे रहा हूं, जो आपके पोस्ट में उल्लिखित दो मापदंडों को लेता है - HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
यानीHttpResponseException(string, HttpStatusCode)
ModelState
।