असल में, मुझे लगता है कि आपके आरईएसटी एपीआई संस्करण का एक अच्छा विचार है। यह सामान्य ज्ञान है। आमतौर पर आप ऐसा करने के तरीके पर दो दृष्टिकोण को पूरा: ट्विलियो के रूप में एक आरईएसटी एपीआई संस्करण के संस्करण का लाभ क्या है?
/api/v1/foo/bar
रूप
- या तो, आप अपने URL में एक संस्करण पहचानकर्ता है, या, आप इस तरह
Accept: vnd.myco+v1
के रूप में एक शीर्ष लेख का उपयोग,।
अभी तक, बहुत अच्छा है। यह almost all big companies do है। दोनों दृष्टिकोणों में उनके पेशेवर और विपक्ष हैं, और इनमें से बहुत सी चीजों पर चर्चा की गई है here।
अब मैंने टिलिलियो में एक पूरी तरह से अलग दृष्टिकोण देखा है, जैसा कि here वर्णित है। वे एक तिथि का उपयोग करते हैं:
संकलन समय पर, डेवलपर को कोड संकलित होने पर एप्लिकेशन का टाइमस्टैम्प शामिल होता है। वह टाइमस्टैम्प सभी HTTP अनुरोधों में जाता है।
जब अनुरोध ट्विलियो में आता है, तो वे एक नज़र डालते हैं। टाइमस्टैम्प के आधार पर वे एपीआई की पहचान करते हैं जो वैध था जब यह कोड बनाया गया था और तदनुसार मार्ग।
यह एक बहुत ही चालाक और रोचक दृष्टिकोण है, हालांकि मुझे लगता है कि यह थोड़ा जटिल है। यह समझने में भ्रमित हो सकता है कि टाइमस्टैम्प संकलन समय या एपीआई जारी होने पर टाइमस्टैम्प है, उदाहरण के लिए।
अब जबकि मुझे किसी भी तरह से यह चालाक लगता है, मुझे आश्चर्य है कि इस दृष्टिकोण के वास्तविक लाभ क्या हैं। बेशक, इसका मतलब है कि आपको केवल अपने एपीआई (वर्तमान एक) के एक संस्करण को दस्तावेज करना होगा, लेकिन दूसरी ओर यह और अधिक कठिन हो गया है की खोज करने योग्यता बनाता है।
क्या किसी को पता है कि इस दृष्टिकोण के फायदे क्या हैं, तो क्यों ट्विलियो ने ऐसा करने का फैसला किया?
कृपया ध्यान दें कि मुझे पता है कि यह प्रश्न ऐसा लगता है कि उत्तर मुख्य रूप से राय आधारित हैं, लेकिन मुझे लगता है कि ट्विलियो के पास ऐसा करने का एक अच्छा तकनीकी कारण था। तो कृपया इस प्रश्न को प्राथमिकता के आधार पर मत बंद करें, क्योंकि मुझे आशा है कि उत्तर नहीं है।
हां, केवल दो संस्करण हैं, लेकिन आप वास्तव में अपनी इच्छित तारीख निर्दिष्ट कर सकते हैं। मान लें कि मैंने आज एक ऐप लिखा है, और मुझे वर्तमान संस्करण (दिनांक) संख्या याद नहीं है। तो मैं आज की तारीख का उपयोग करता हूं: 2014-12-23। एपीआई स्वचालित रूप से नवीनतम एपीआई संस्करण चुन लेगा जो कि मेरे द्वारा निर्दिष्ट दिनांक से अधिक नया नहीं है। – kelnos
@ केलनोस: यह एक संस्करण संख्या के साथ भी काम करता है। उदाहरण के लिए, आपके पास '/ v1/api /' और '/ v2/api /' हो सकता है लेकिन आप '/ api/'का भी खुलासा करते हैं जो नवीनतम संस्करण को इंगित करता है, मूल रूप से'/v2/api/' – Bogdan
के लिए उपनाम @Bogdan, एपीआई के डिफ़ॉल्ट/नवीनतम संस्करण को उजागर करके, जैसा कि आप '/ api /' के साथ सुझाव देते हैं, क्लाइंट को तोड़ने वाले परिवर्तनों को स्वीकार करने का जोखिम है, क्योंकि नवीनतम v2, v3, आदि हो सकता है। तिथि डेवलपर्स को आसान बनाती है आज के रूप में नवीनतम अनुरोध करने का तरीका है, और कल उन्हें पेश किए जा रहे परिवर्तनों को तोड़ने से सुरक्षित रखता है। – andes