API के संबंध में कॉलबैक URL क्या है?


98

मैं नेट खंगाल रहा हूं, और कॉलबैक URL के विचार के आसपास अपना सिर लपेटने के लिए प्रतीत नहीं हो सकता। मेरे मामले में मेरे पास कुछ कॉलबैक URL हैं जिन्हें मुझे खुद को परिभाषित करना होगा। एक लोकप्रिय एक "डिफ़ॉल्ट कॉलबैक URL" है। यह वास्तव में क्या है? क्या आप सादे अंग्रेजी में एक उदाहरण दे सकते हैं?

जवाबों:


67

कॉलबैक URL आपके द्वारा किए जाने के बाद आपके द्वारा कॉल की जा रही API विधि द्वारा लागू किया जाएगा। तो अगर आप फोन करते हैं

POST /api.example.com/foo?callbackURL=http://my.server.com/bar

फिर जब /fooसमाप्त हो जाता है, यह एक अनुरोध भेजता है http://my.server.com/bar। उस अनुरोध की सामग्री और विधि अलग-अलग हो रही है - जिस एपीआई तक आप पहुंच रहे हैं, उसके लिए दस्तावेज की जांच करें।


1
यदि कॉलबैक URL सही तरीके से सेट नहीं किया गया है तो क्या यह एक त्रुटि का कारण होगा?
user3768495

@ user3768495 मुझे उम्मीद है कि यह नहीं होगा, लेकिन यह एपीआई के कार्यान्वयन पर निर्भर करेगा। यह, सिद्धांत रूप में, कॉलबैक को लेनदेन का आंतरिक हिस्सा बना सकता है, और कॉलबैक 2xx प्रतिक्रिया वापस नहीं होने पर मूल अनुरोध द्वारा किए गए किसी भी परिवर्तन को वापस ले सकता है।
एरिक स्टीन

क्या मुझे /api.example.com/foo पर POST अनुरोध का जवाब भेजने की आवश्यकता है?
अभिजीत

@Abhijeet तुम कभी आवश्यकता है। यदि किसी प्रतिक्रिया को शामिल करना उचित है, तो हां, ऐसा करें।
एरिक स्टीन

अलग-अलग नोट पर, आप लोग कहां सोचते हैं कि हमें ग्राहक या सर्वर साइड पर कॉलबैक यूआरएल रखना चाहिए?
खत्री

28

इसे एक पत्र के रूप में सोचें। कभी-कभी आपको एक पत्र मिलता है, कहें कि आपको एक फॉर्म भरना है, फिर फॉर्म को पूर्व-संबोधित लिफाफे में लौटा दें जो मूल लिफाफे में है जो फॉर्म को हाउस कर रहा था।

एक बार जब आप फॉर्म को भरना शुरू कर देते हैं, तो आप इसे प्रदान किए गए रिटर्न लिफाफे में डालते हैं और इसे वापस भेजते हैं।

कॉलबैकUrl उस रिटर्न लिफाफे की तरह है। आप मूल रूप से कह रहे हैं कि मैं आपको यह डेटा भेज रहा हूं। एक बार जब आप इसके साथ हो जाते हैं, तो मैं इस कॉलबैक पर हूं आपकी प्रतिक्रिया का इंतजार कर रहा हूं। तो एपीआई आपके द्वारा भेजे गए डेटा को संसाधित करेगा और फिर कॉलबैक को देख आपको प्रतिक्रिया भेजेगा।

यह उपयोगी है क्योंकि कभी-कभी आपको कुछ डेटा को संसाधित करने में उम्र लग सकती है और इससे कॉलर के जवाब की प्रतीक्षा करने का कोई मतलब नहीं है। उदाहरण के लिए, मान लें कि आपका API उपयोगकर्ताओं को इसके लिए दस्तावेज़ भेजने और उन्हें स्कैन करने की अनुमति देता है। फिर आप एक रिपोर्ट भेजते हैं। स्कैन शायद 3 मिनट ले सकता है। उपयोगकर्ता 3 मिनट के लिए इंतजार नहीं कर सकता। तो आप स्वीकार करते हैं कि आपने दस्तावेज़ प्राप्त कर लिया है और स्कैन करते समय कॉलर को अन्य व्यवसाय के साथ आने दें, फिर कॉलबैक यूआरएल का उपयोग करें जब उन्हें स्कैन के परिणाम को बताने के लिए किया।


12

यदि आप कॉलबैक URL का उपयोग करते हैं, तो API कॉलबैक URL से जुड़ सकता है और कुछ डेटा भेज या प्राप्त कर सकता है। इसका मतलब है कि एपीआई आपको बाद में (एपीआई कॉल के बाद) कनेक्ट कर सकता है।

उदाहरण

आरेख

  1. आप एपीआई के अनुरोध का उपयोग करके डेटा भेजते हैं
  2. एपीआई के लिए दूसरा अनुरोध का उपयोग कर डेटा भेजता है आप

सटीक परिभाषा एपीआई प्रलेखन में होनी चाहिए।


4

यह एक अतुलनीय तरीके से एक एपीआई को लागू करने के लिए एक तंत्र है। अनुक्रम निम्नलिखित है

  1. आपका ऐप url को कॉल करता है, कॉलबैक url के पैरामीटर के रूप में गुजरता है
  2. एपीआई 20x http कोड के साथ प्रतिक्रिया करता है (201 मुझे लगता है, लेकिन एपीआई डॉक्स को देखें)
  3. एपीआई आपके अनुरोध पर एक निश्चित समय के लिए काम करता है
  4. एपीआई कॉलबैक url पते पर आपको परिणाम देने के लिए आपके ऐप को आमंत्रित करता है।

इसलिए आप एपीआई को आमंत्रित कर सकते हैं और अपने उपयोगकर्ता को बता सकते हैं कि अनुरोध "प्रसंस्करण" या "अधिग्रहित" है उदाहरण के लिए, और तब आप स्थिति को अपडेट करें जब आप एपीआई से प्रतिक्रिया प्राप्त करते हैं।

आशा है कि यह समझ में आता है। जी


2

एक अन्य उपयोग मामला OAuth जैसा कुछ हो सकता है, इसे सीधे API द्वारा नहीं बुलाया जा सकता है, इसके बजाय कॉलबैक URL को पहचान प्रदाता के साथ ऑर्केंशन पूरा करने के बाद ब्राउज़र द्वारा कॉल किया जाएगा।

सामान्य रूप से उपयोगकर्ता नाम पासवर्ड में अंत उपयोगकर्ता कुंजी के बाद, पहचान सेवा प्रदाता एक ब्राउज़र को आपके "कॉलबैक" यूआरएल पर पुनर्निर्देशित करेगा, जो अस्थायी ऑर्थरोलाइज़ेशन कोड के साथ यूआरएल है, जैसे

https://example.com/callback?code=AUTHORIZATION_CODE

तब आपका एप्लिकेशन इस प्राधिकरण कोड का उपयोग पहचान प्रदाता के साथ एक पहुंच टोकन का अनुरोध करने के लिए कर सकता है, जो जीवनकाल बहुत लंबा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.