ध्यान रखने की बातें
जिन जगहों पर अपने-आप बना कोड अक्सर गलत होता है, वहाँ API असल में कैसे चलता है। नीचे की हर बात यह बताती है कि सर्वर अनुरोध को कैसे सँभालता है; यह लिखने के ढंग की कोई पसंद नहीं है।
अनुरोध
- आख़िरी स्लैश ज़रूरी है।
/api/astro/tithi/चलता है;/api/astro/tithiपर 301 मिलता है, और जो क्लाइंट रीडायरेक्ट पर चलता है वह अनुरोध को बिना बॉडी के GET बनाकर दोबारा भेजता है। - एक ही मान का नाम अलग-अलग एंडपॉइंट पर अलग है। समय लगभग हर जगह
date_timeहै, पर/api/astro/chart/और वर्ग कुंडलियों परdatetime; ऑफ़सेट आम तौर परtimezone_as_floatहै, पर कुछ परtimezone,tzयाtime_zone; राहु-केतु का फ़ील्डrahu,nodeयाnode_typeहै, और सबके डिफ़ॉल्ट अलग हैं। हर जगह एक ही बॉडी चलाने के बजाय हर एंडपॉइंट की बॉडी उसकी फ़ील्ड सूची से बनाएँ। - ग्रीनविच के पश्चिम में देशांतर ऋणात्मक होता है और भूमध्य रेखा के दक्षिण में अक्षांश। न्यूयॉर्क
-74.006है,74.006नहीं। - अक्षांश की सीमा अलग-अलग है: ज़्यादातर कुंडली और पंचांग एंडपॉइंट ±89.9 तक लेते हैं, अष्टमंगल और जामक्कोल प्रश्न एंडपॉइंट ±66 तक। एंडपॉइंट की सीमा से बाहर का मान 400 के साथ लौटा दिया जाता है।
गलत इनपुट, फिर भी 200
- बिना ऑफ़सेट वाला
date_timeउस जगह का स्थानीय समय नहीं माना जाता: ज़्यादातर एंडपॉइंट इसे UTC+05:30 मानते हैं, कुछ UTC। उत्तर सामान्य 200 होता है, पर किसी और पल का — कभी-कभी पिछले दिन का। हमेशा ऑफ़सेट या Z भेजें। timezone_as_floatकोdate_timeके ऑफ़सेट से मिलाकर नहीं जाँचा जाता। दोनों अलग हों तो गलत पल का 200 उत्तर मिलता है। आज का नहीं, उस तारीख़ को लागू ऑफ़सेट लें (गर्मियों का समय भी गिनकर);/api/astro/date_time/इसे निर्देशांकों से निकाल देता है।- कुछ फ़ील्ड विफल होने के बजाय डिफ़ॉल्ट पर चले जाते हैं:
/api/astro/chart/परascendant_posमेंstartयाendके अलावा कुछ भी हो तो उसे भाव-संधि माना जाता है, और/api/astro/festival/परmoon_optionमेंpoornimaके अलावा कुछ भी हो तो वहamavasकी तरह चलता है। वहाँ टाइपिंग की एक गलती बिना त्रुटि के जवाब बदल देती है।
Keys
- जिस एंडपॉइंट की keys तालिका है, उस पर तालिका से बाहर की key भेजने पर पूरा अनुरोध 400 के साथ लौट आता है, और message में अनजान keys के नाम होते हैं। न कोई गणना होती है, न कोई शुल्क लगता है।
- keys के नाम हूबहू होते हैं और कभी-कभी चौंकाते हैं:
/api/astro/panchanga/पर दिन के योग के लिएyogam, फिरrahu_kaalamऔरcalcualte_special_tithi(वर्तनी यही है)। अंदाज़ा लगाने के बजाय इन्हें keys तालिका से कॉपी करें। - जिस key को एक और फ़ील्ड चाहिए, वह फ़ील्ड न होने पर 400 के साथ विफल होती है, जैसे
/api/astro/numerology/परphone_numberमान के बिनाphone_numberkey। - एक सफल कॉल पर एक क्रेडिट लगता है, उसमें कितनी भी keys हों। जो कुछ चाहिए, एक ही कॉल में माँगें —
tithi,vaara,yogamऔरkaranaएक साथ — हर key के लिए अलग कॉल नहीं। /api/astro/tithi/और/api/astro/rahu-kaal/जैसे एक-काम वाले एंडपॉइंट की कोई keys तालिका नहीं है: वे हमेशा वही तय नतीजे लौटाते हैं, और उन्हें भेजी गईkeysसूची इस्तेमाल नहीं होती।/api/astro/numerology/पर मान्य keyssystemपर निर्भर करती हैं। किसी दूसरी पद्धति की key भेजने पर 400 मिलता है, जिसमें उस key का नाम होता है।
क्रेडिट, त्रुटियाँ और सीमाएँ
- ज़्यादातर एंडपॉइंट पर हर सफल कॉल का एक क्रेडिट लगता है।
/api/astro/chat/,/api/astro/pdf/horoscope/और/api/astro/pdf/yearbook/पर 25-25 लगते हैं — इन्हें लूप और दोबारा कोशिश वाले कोड से दूर रखें। - विफल कॉल मुफ़्त हैं: गणना से पहले क्रेडिट अलग रख लिए जाते हैं और 2xx के अलावा किसी भी उत्तर पर लौटा दिए जाते हैं, और उस उत्तर में
X-Credits-Charged: 0होता है। - शुल्क वाले उत्तरों में
X-Credits-Cost,X-Credits-ChargedऔरX-Credits-Remainingहोते हैं, और प्रति मिनट की सीमा वालेX-RateLimit-LimitऔरX-RateLimit-Remainingभी। बैलेंस का हिसाब ख़ुद रखने के बजाय इन्हें पढ़ें। - क्रेडिट ख़त्म होने पर 402 मिलता है,
messageमेंinsufficient_creditsके साथ; उसकेdataमेंcost_credits,credits_remainingऔरrecharge_urlहोते हैं। जब तक प्लान अपग्रेड न हो या उसका कोटा रीसेट न हो, दोबारा कोशिश करने से कुछ नहीं होगा। - प्रति मिनट की सीमा पार होने पर 429 मिलता है,
messageमेंapi_key_rate_limitedऔर साथ मेंRetry-Afterहेडर (dataमेंretry_after_secondsभी)। दोबारा भेजने से पहले उतनी देर रुकें। - गलत रूप वाली, रद्द या अवधि ख़त्म हो चुकी कुंजी पर 401
invalid_api_keyमिलता है। जिस रूट, स्कोप या IP पते की अनुमति आपकी कुंजी को नहीं है, उस पर 403endpoint_not_allowed,scope_not_allowedयाip_not_allowedमिलता है। - कुंजी और क्रेडिट की जाँच से आई त्रुटियाँ
{ "error": "…", "message": "insufficient_credits", "is_error": true, "data": { … } }जैसी दिखती हैं:messageका कोड देखकर फ़ैसला करें। गणना वाले उत्तर विफल होने पर{ "data": {}, "status": 400, "is_error": true, "message": "…" }ढाँचा इस्तेमाल करते हैं, जिसमें कारणmessageमें लिखा होता है। दोनों मेंis_errorहोता है। - दोनों PDF एंडपॉइंट JSON नहीं, सीधे PDF (
application/pdf) लौटाते हैं। बॉडी को फ़ाइल में लिख लें; बाद में डाउनलोड करने के लिए कोई लिंक नहीं होता।
ज्योतिष
- वैदिक एंडपॉइंट निरयन हैं और अयनांश का संशोधन सर्वर पर ही कर देते हैं;
/api/astro/western/रूट डिफ़ॉल्ट रूप से सायन हैं। नतीजे में से अयनांश ख़ुद न घटाएँ। /api/astro/kp-chart/निरयन राशिचक्र पर प्लेसिडस भाव-संधियाँ लेता है, इसलिए एक ही जन्म के लिए उसके भाव/api/astro/chart/से अलग हो सकते हैं। यह KP पद्धति है, कोई असंगति नहीं।- राशिफल राशि पर आधारित भविष्यवाणी है, इसमें जन्म कुंडली नहीं लगती: जन्म का ब्योरा नहीं, बल्कि
rashiमें राशि का अंग्रेज़ी नाम भेजें, जैसेleo। - जब तक आप
seedन भेजें, टैरो के पत्ते बेतरतीब निकलते हैं। हर उत्तर में वह seed होता है जिससे पत्ते निकले, इसलिए अगर किसी रीडिंग को बाद में हूबहू दिखाना हो तो उसे सँभाल लें। /api/astro/numerology/iching/एक तारीख़ और नाम को अंकों के हिसाब से 64 हेक्साग्राम में से किसी पर रखता है। कुछ फेंका नहीं जाता, इसलिए न बदलती रेखाएँ होती हैं, न दूसरा हेक्साग्राम।