इसका मतलब है कि आप वस्तुओं को कुछ माध्यमों से एक्सेस करने में सक्षम बनाते हैं। अपने उदाहरणों में, आप अपने प्रोटोकॉल ( एपीआई ) के साथ बातचीत करने के लिए कुछ पूर्वनिर्धारित तरीके से HTTP प्रोटोकॉल का उपयोग करके उपयोगकर्ताओं को वस्तुओं को बनाने, पढ़ने, अद्यतन करने या (आमतौर पर संक्षिप्त रूप में CRUD) को नष्ट करने की अनुमति दे सकते हैं ।
वह API नियमों के एक सेट का पालन कर सकता है - जैसे कि RESTful API ऑब्जेक्ट पर कुछ क्रियाओं को करने के लिए HTTP क्रियाओं का उपयोग करता है और वे कुछ सिद्धांतों का पालन करते हैं जो कहते हैं कि कैसे संसाधनों की पहचान / प्रतिनिधित्व किया जाना चाहिए और उन अभ्यावेदन के माध्यम से कैसे हेरफेर किया जाना चाहिए।
एक वेब एप्लिकेशन के संदर्भ में, मान लें कि आपके पास अपने डेटाबेस में संग्रहीत ब्लॉग पोस्ट हैं। आप चाहेंगे कि आपके एप्लिकेशन के उपयोगकर्ता उन पोस्टों के साथ कुछ करने में सक्षम हों। उन्हें आवश्यक रूप से आपकी वेब साइट का उपयोग करने की आवश्यकता नहीं है , लेकिन शायद अपने स्वयं के एप्लिकेशन का उपयोग कर सकते हैं जो आपके एप्लिकेशन से कनेक्ट होगा (जैसे ब्लॉग रीडर प्रोग्राम)।
आपके एप्लिकेशन के स्वामी के रूप में, आप एक इंटरफ़ेस परिभाषित कर सकते हैं जिसके माध्यम से आपके एप्लिकेशन तक पहुँचा जा सकता है। उदाहरण के लिए, आप कुछ उपयोगकर्ताओं को ब्लॉग पोस्ट पढ़ने या लिखने के लिए एक विकल्प जोड़ना चाह सकते हैं। इंटरफ़ेस कुछ इस तरह दिख सकता है (अधिक जटिल एपीआई के उदाहरण के लिए, ट्विटर की एपीआई परिभाषा देखें ):
- यदि
GET /posts/{number} HTTP/1.1
आपके वेब एप्लिकेशन से अनुरोध किया जाता है, तो आप {number}
एक पूर्वनिर्धारित प्रारूप में एक आईडी के साथ अपनी पोस्ट ऑब्जेक्ट का प्रतिनिधित्व प्रदान करेंगे
ध्यान दें कि आप एक वास्तविक डेटाबेस ऑब्जेक्ट प्रदान नहीं कर रहे हैं, न ही आपकी एप्लिकेशन ऑब्जेक्ट। आप अपनी वस्तु का प्रतिनिधित्व प्रदान कर रहे हैं
- एक तो
POST /posts HTTP/1.1
एक साथ title={text1}&body={text2}
अपने वेब आवेदन करने के लिए पोस्ट किया जाता है, तो आप शीर्षक से एक नई पोस्ट वस्तु पैदा करेगा {text1}
कि शामिल होंगे {text2}
अपने शरीर के लिए, और नव निर्मित पोस्ट के एक आईडी मान प्रदान करेंगे
फिर से, आप उपयोगकर्ता को आपकी वस्तुओं के प्रतिनिधित्व में हेरफेर करने की अनुमति दे रहे हैं। उपयोगकर्ता को यह जानने की ज़रूरत नहीं है कि आपकी वस्तुएं वास्तव में कैसी दिखती हैं (जो कि उपयोगकर्ता द्वारा इंटरफ़ेस से दूर है)।
ऑब्जेक्ट को एक्सपोज़ करने का अर्थ है कि उपयोगकर्ता को आपकी वस्तुओं तक पहुंचने और हेरफेर करने के लिए इंटरफ़ेस प्रदान करना। यदि उस इंटरफ़ेस ने ऑब्जेक्ट के प्रतिनिधित्व और ऑब्जेक्ट के राज्यों के बारे में कुछ अतिरिक्त पूर्वनिर्धारित शर्तों को संतुष्ट किया है जो अपनी वस्तुओं को उजागर करता है, तो उस इंटरफ़ेस को REST (या RESTful) API कहा जाता है।