कंटेंट नेगोशिएशन वह प्रक्रिया है जिसके द्वारा एक यूआरएल कई तरह के रिप्रेजेंटेशन दिखा सकता है। क्लाइंट बताता है कि वह क्या स्वीकार कर सकता है; सर्वर अपने द्वारा उपलब्ध रिप्रेजेंटेशन में से चुनता है; और रिस्पॉन्स में बताया जाता है कि कौन सा चुना गया। रिसोर्स दोनों ही स्थितियों में समान रहता है — केवल उसका रेंडरिंग अलग होता है।
क्लाइंट वांछित मीडिया प्रकारों के साथ Accept भेजता है, जिसे वैकल्पिक रूप से q-मानों के साथ भारित किया जा सकता है। सर्वर Content-Type के साथ उत्तर देता है जिसमें यह बताया जाता है कि उसने वास्तव में क्या भेजा है, और उसे Vary: Accept भेजना चाहिए ताकि कैश CSV का अनुरोध करने वाले क्लाइंट को JSON प्रतिक्रिया न दे। यदि क्लाइंट द्वारा स्वीकार करने योग्य कुछ भी नहीं दिया जा सकता है, तो उत्तर 406 Not Acceptable होता है। इसका विपरीत मामला — क्लाइंट द्वारा सर्वर द्वारा पार्स न किए जा सकने वाले प्रकार में बॉडी भेजना — 415 Unsupported Media Type होता है।
Accept एक सलाहकारी प्रक्रिया है और इसे अनदेखा किया जा सकता है। कई API इसे अनदेखा करते हैं और हमेशा JSON लौटाते हैं, जो तब तक ठीक रहता है जब तक कि किसी क्लाइंट को वास्तव में कुछ और न चाहिए हो और उसे चुपचाप 200 के साथ JSON प्राप्त हो जाता है। एक ऐसे Accept हेडर का सही उत्तर जो संतोषजनक न हो, वह 406 है।
प्रोटोकॉल लैब असल में बातचीत करती है: `GET /protocol/v1/export/documents` आपके Accept हेडर के आधार पर JSON, CSV या XML आउटपुट देगा, Content-Type को अपनी पसंद के अनुसार सेट करेगा, और जब आप कुछ ऐसा मांगते हैं जिसे वह नहीं बना सकता, तो चुपचाप वापस जाने के बजाय 406 एरर देगा। फ्रेंड्स API इसे इनपुट के समय 415 एरर के साथ जोड़ता है।
सभी शब्द · परीक्षण तकनीकें · सभी 39 मॉक REST API
आखरी अपडेट