rest - Spring MVC Restful service response -
कोई भी विचार क्यों मैं
सेट करते समय एक "HTTP / 1.1 200 ओके" मिलता है Response.status (Response.Status.NOT_FOUND) मैं देख सकता हूं कि प्रतिक्रिया शरीर में यह सही ढंग से निर्धारित किया गया है?
कर्ल-वी http: // my_host / api / v1 / user / 99999999 HTTP / 1.1 200 ओके एक्सेस- नियंत्रण-अनुमति-उत्पत्ति: *
एक्सेस-नियंत्रण-अनुमति-पद्धतियां: पोस्ट, प्राप्त करें, विकल्प, हटाएं
....
{"स्थिति प्रकार ":" NOT_FOUND "," entity ":" आईडी के साथ उत्पाद पुनर्प्राप्त करने में असमर्थ: 99999999 "," एंटिटीटाइप ":" java.lang.String "," status ": 404," मेटाडेटा ": {}}
@RequestMapping (मान = "/ उत्पाद / {आईडी}", विधि = RequestMethod.GET) @ रिस्पॉंसबॉडी सार्वजनिक प्रतिसाद प्राप्त उत्पाद (@ पैटवर्णीय स्ट्रिंग आईडी) {उत्पाद उत्पाद = शून्य; //productService.getProduct(id); अगर (उत्पाद == शून्य) {// मुझे पता है कि मैं यहाँ प्राप्त !!! वापसी Response.status (Response.Status.NOT_FOUND) .entity ("आईडी के साथ उत्पाद पुनः प्राप्त करने में असमर्थ:" + आईडी) निर्माण (); } // AS ASCEEDED I यहां नहीं मिलेगा मानचित्र & lt; स्ट्रिंग, ऑब्जेक्ट & gt; Json = productRenderer.renderProduct (....); वापसी Response.ok (json, MediaType.APPLICATION_JSON)। प्रकार ("एप्लिकेशन / जेसन")। बिल्ड (); } BTW स्प्रिंग संस्करण 3.2.10
कोशिश कर रहा हूँ इसके बदले स्प्रिंग की रिस्पांसइन्टीटी लौट रहा है यह मेरे लिए काम करता है और सही प्रतिक्रिया स्थिति सेट करता है: उदाहरण के लिए:
नई प्रतिक्रियाएंइन्टीटी वापस & lt; & gt; (एचटीटीपीटीटस.NOT_FOUND); या शरीर के साथ: <पूर्व> नई प्रतिक्रियाएं वापस जाएं & lt; & gt; (शरीर, एचटीटीपीस्टैटस। ओक); आप अपने प्रश्न में प्रतिक्रिया के साथ करते हुए बिल्डर पैटर्न का भी उपयोग कर सकते हैं (निम्न उदाहरण रिस्पांसरेन्टिटी के जावाडॉक से है: रिटर्नसएन्टीटी। रिट्रीटएन्टीटी .कैटेड (स्थान) .डर ("माइआरस्पॉन्सहाडर", "माइवल्यू") .body ("हैलो वर्ल्ड"); अधिक जानकारी दस्तावेज में पाई जा सकती हैं:
Comments
Post a Comment