याद रखें कि REST API के साथ, यह आपके दृष्टिकोण का प्रश्न है।
REST API में दो मुख्य अवधारणाएँ एंडपॉइंट और संसाधन (निकाय) हैं। पूरी तरह से, एक समापन बिंदु या तो GET के माध्यम से संसाधन देता है या POST और PUT और इतने पर (या उपरोक्त के संयोजन) के माध्यम से संसाधनों को स्वीकार करता है।
यह स्वीकार किया जाता है कि POST के साथ, जो डेटा आप भेजते हैं, उसके परिणामस्वरूप कोई नया संसाधन और इससे संबद्ध समापन बिंदु (ओं) का निर्माण नहीं हो सकता है, जो संभवतः POSTed url के तहत "लाइव" नहीं होंगे। दूसरे शब्दों में जब आप POST करते हैं तो आप डेटा को हैंडलिंग के लिए कहीं भेज देते हैं। POST एंडपॉइंट वह जगह नहीं है जहां संसाधन सामान्य रूप से मिल सकता है।
RFC 2616 से उद्धृत (अप्रासंगिक भागों के साथ छोड़ दिया गया, और संबंधित भागों को हाइलाइट किया गया):
9.5 पोस्ट
POST विधि का उपयोग अनुरोध करने के लिए किया जाता है कि मूल सर्वर अनुरोध में संलग्न इकाई को अनुरोध-लाइन में अनुरोध-यूआरआई द्वारा पहचाने गए संसाधन के नए अधीनस्थ के रूप में स्वीकार करता है। POST को निम्नलिखित कार्यों को कवर करने के लिए एक समान विधि की अनुमति देने के लिए डिज़ाइन किया गया है:
- ...
- डेटा का एक ब्लॉक प्रदान करना, जैसे कि डेटा जमा करने की प्रक्रिया के लिए फ़ॉर्म सबमिट करना;
- ...
...
POST विधि द्वारा की गई कार्रवाई के परिणामस्वरूप एक संसाधन नहीं हो सकता है जिसे URI द्वारा पहचाना जा सकता है । इस मामले में, 200 (ओके) या 204 (कोई सामग्री) उपयुक्त प्रतिक्रिया की स्थिति है, इस पर निर्भर करता है कि प्रतिक्रिया में एक इकाई शामिल है जो परिणाम का वर्णन करती है ।
यदि मूल सर्वर पर एक संसाधन बनाया गया है, तो प्रतिक्रिया को 201 (बनाया गया) होना चाहिए ...
हम 'चीजों' या 'डेटा' का प्रतिनिधित्व करने वाले एंडपॉइंट और संसाधनों के लिए उपयोग हो गए हैं, चाहे वह उपयोगकर्ता हो, संदेश हो, पुस्तक हो - समस्या डोमेन जो भी तय करती है। हालांकि, एक समापन बिंदु एक अलग संसाधन को भी उजागर कर सकता है - उदाहरण के लिए खोज परिणाम।
निम्नलिखित उदाहरण पर विचार करें:
GET /books?author=AUTHOR
POST /books
PUT /books/ID
DELETE /books/ID
यह एक विशिष्ट REST CRUD है। लेकिन क्या होगा अगर हमने जोड़ा:
POST /books/search
{
"keywords": "...",
"yearRange": {"from": 1945, "to": 2003},
"genre": "..."
}
इस समापन बिंदु के बारे में अन-रेस्टफुल कुछ भी नहीं है। यह अनुरोध निकाय के रूप में डेटा (निकाय) को स्वीकार करता है। वह डेटा सर्च क्राइटेरिया है - किसी अन्य की तरह एक डीटीओ। यह समापन बिंदु अनुरोध के जवाब में एक संसाधन (इकाई) का उत्पादन करता है: खोज परिणाम । खोज परिणाम संसाधन एक अस्थायी है, जिसे ग्राहक को तुरंत परोसा जाता है, बिना रीडायरेक्ट के और कुछ अन्य विहित यूआरएल से उजागर किए बिना।
यह अभी भी बाकी है, सिवाय संस्थाओं के किताबें नहीं हैं - अनुरोध इकाई पुस्तक खोज मानदंड है, और प्रतिक्रिया इकाई पुस्तक खोज परिणाम है।