कभी एक्सपायर न होने वाली API कुंजियों की समस्या
कई साल पहले जारी की गई कुंजी, जिसे कभी रोटेट नहीं किया गया और जो आज भी मान्य है, कोई सुविधा नहीं है। यह एक जोखिम है जिसे सालों से किसी ने वास्तव में देखा तक नहीं।
हम एक जियोकोडिंग API बनाते और चलाते हैं। पूरी कंपनी बस यही है। इन बाकी पोस्ट में बताया गया हर फ़ैसला, यानी सीटों के बजाय प्रति अनुरोध मूल्य निर्धारण, उलटी गिनती वाले ट्रायल के बजाय बिना कुंजी वाला मुफ़्त टियर, अपने खास फ़ॉर्मेट के बजाय कम्पैटिबिलिटी होस्ट, पीछे चलने वाले डैशबोर्ड के बजाय हर रिस्पॉन्स पर कोटा हेडर, उसी सरल कसौटी से निकलता है जिसे हम इसे बनाते समय बार-बार लागू करते रहे: अगर हम दूसरी तरफ़ के ग्राहक होते, तो क्या यह हमें परेशान करता।
इस संग्रह में हमने जिन बुरी आदतों के बारे में लिखा है, उनमें से ज़्यादातर इस कसौटी पर तुरंत नाकाम हो जाती हैं, जैसे ही आप सच में कल्पना करते हैं कि उनके लिए भुगतान आप कर रहे हैं। कोई भी प्रोडक्शन में किसी नाकाम अनुरोध से रेट लिमिट का पता नहीं लगाना चाहता। कोई भी ऐसा "unlimited" प्लान नहीं चाहता जिसके साथ बाद में फ़ेयर यूज़ पॉलिसी जुड़ी निकले। कोई भी ऐसा माइग्रेशन नहीं चाहता जिसमें एक तिमाही लग जाए क्योंकि पिछले प्रोवाइडर का SDK सालों तक कोडबेस में अपनी संरचनाएँ बिखेरता रहा। ये कोई अनोखी शिकायतें नहीं हैं। ये वे चीज़ें हैं जिनका अनुभव लगभग हर डेवलपर ने API संबंध के दूसरी तरफ़ से किया है, और इसीलिए हमें नहीं लगता कि इन्हें टालने लायक समस्याओं के रूप में पहचानने के लिए ग्राहक रिसर्च की ज़रूरत है।
मूल्य निर्धारण इसे लागू करने की सबसे साफ़ जगह थी। किसी भी पते से प्रतिदिन 2,500 मुफ़्त अनुरोध, बिना किसी कुंजी के। जब आपको ज़्यादा चाहिए, तो एक ईमेल पते से साइन अप करें और या तो €0.0001 प्रति अनुरोध की दर से प्रीपेड क्रेडिट रिचार्ज करें या €50 प्रति माह में Unlimited कुंजी लें। हर एंडपॉइंट और हर ड्रॉप-इन होस्ट की कीमत एक जैसी है। हम यहाँ प्रति ग्राहक आय को अधिकतम करने के लिए बनाई गई किसी मूल्य निर्धारण ऑप्टिमाइज़ेशन कवायद से नहीं पहुँचे। हम यहाँ यह पूछकर पहुँचे कि इस खास प्रोडक्ट की एक उचित, ईमानदार कीमत उस व्यक्ति को कैसी लगेगी जो पहले अस्पष्ट टियर, ओवरेज शुल्क और एंटरप्राइज़ सेल्स कॉल से परेशान हो चुका है, क्योंकि हम सभी कभी न कभी वही व्यक्ति रह चुके थे।
यही कसौटी उन छोटे फ़ैसलों पर भी लागू होती है जो कभी मूल्य निर्धारण पेज पर नहीं दिखते: बिना किसी अतिरिक्त शुल्क के कुंजी को हेडर, bearer token, Basic auth या क्वेरी पैरामीटर के ज़रिए स्वीकार करना, क्योंकि कोई एक खास तरीका थोपना उन सभी के लिए बेवजह की रुकावट है जिनका मौजूदा कोड इसे अलग तरह से करता है। एरर कोड और रेट लिमिट साफ़-साफ़ प्रकाशित करना, क्योंकि बिना दस्तावेज़ वाली किसी गड़बड़ी का अंदाज़ा लगाना सबका समय बर्बाद करता है। इनमें से कोई भी फ़ैसला नाटकीय नहीं है। ये प्रोडक्ट के हर हिस्से में, बार-बार, परेशान करने वाला काम न करने का जोड़ हैं।
हम यह दावा नहीं कर रहे कि इससे प्रोडक्ट का हर हिस्सा पूरा या परफ़ेक्ट हो जाता है। हम साफ़ बताते हैं कि किन एंडपॉइंट को हम पूरी तरह काम करता हुआ मानते हैं, और किन्हें, जैसे फ़ॉरवर्ड जियोकोडिंग, रिवर्स जियोकोडिंग और ऑटोकम्प्लीट, हम बढ़ा-चढ़ाकर पेश करने के बजाय सावधानी से बताते हैं, क्योंकि बढ़ा-चढ़ाकर बेचना उसी नाकामी का एक और रूप है: ग्राहक को वह बताना जो वह सुनना चाहता है, न कि वह जो सच में सही है। जो प्रोडक्ट हम खुद खरीदना चाहें, उसे बनाने का मतलब है उसे ईमानदारी से बनाना, उसकी मौजूदा सीमाओं के बारे में भी, न कि केवल वे हिस्से बनाना जिन पर गर्व करना आसान हो। यही मानक हमने अपने लिए तय किया है, और इसी पर हम आगे भी परखे जाना चाहते हैं।