गड़बड़ियां और उन्हें ठीक करना

Isochrones API, Google Cloud के स्टैंडर्ड google.rpc.Status JSON फ़ॉर्मैट का इस्तेमाल करके गड़बड़ियां दिखाता है:

{
  "error": {
    "code": 400,
    "message": "Violation in GenerateIsochroneRequest.travel_duration: travel_duration must be at least 1 second and not exceed 3600 seconds (60 minutes) for DRIVE or TWO_WHEELER mode or 7200 seconds (120 minutes) for other modes",
    "status": "INVALID_ARGUMENT"
  }
}

प्रोग्राम के हिसाब से गड़बड़ियों को ठीक करने के लिए, status (या एचटीटीपी code) फ़ील्ड का इस्तेमाल करें. message टेक्स्ट, डेवलपर के लिए है और इसमें बदलाव हो सकता है. इसलिए, इसे पार्स न करें.

Isochrones API का इस्तेमाल करते समय, आपको गड़बड़ी के ये सामान्य स्टेटस कोड दिख सकते हैं:

  • 400 INVALID_ARGUMENT: अनुरोध में अमान्य पैरामीटर या गलत सिंटैक्स है:
    • अवधि की सीमाएं: पक्का करें कि travelDuration कम से कम "1s" हो, "s" (जैसे कि "1800s") के साथ खत्म हो, और मोड की सीमा से ज़्यादा न हो: DRIVE और TWO_WHEELER के लिए 3600s (60 मिनट) या WALK और BICYCLE के लिए 7200s (120 मिनट). शून्य ("0s"), नेगेटिव वैल्यू, और एक सेकंड से कम की वैल्यू (जैसे, "0.5s") को अस्वीकार कर दिया जाता है.
    • ट्रैफ़िक की प्राथमिकता: पक्का करें कि जब travelMode को WALK या BICYCLE पर सेट किया गया हो, तब routingPreference को TRAFFIC_AWARE पर सेट न किया गया हो. लाइव ट्रैफ़िक की सुविधा, सिर्फ़ DRIVE और TWO_WHEELER के लिए उपलब्ध है.
    • ज़रूरी enum: पक्का करें कि travelMode और travelDirection (FROM या TO), दोनों की जानकारी दी गई हो और उन्हें *_UNSPECIFIED पर सेट न किया गया हो.
    • ऑरिजिन कोऑर्डिनेट (location): latitude ([-90, 90] में) और longitude ([-180, 180] में), दोनों को सेट करें. किसी फ़ील्ड को छोड़ने पर, उसे बिना किसी गड़बड़ी के 0 माना जाता है: दोनों को छोड़ने पर (0, 0) मिलता है, जिसे अस्वीकार कर दिया जाता है; सिर्फ़ latitude को छोड़ने पर, ऑरिजिन भूमध्य रेखा पर सेट हो जाता है; और सिर्फ़ longitude को छोड़ने पर, यह प्राइम मेरिडियन पर सेट हो जाता है.
    • जगह के आईडी का फ़ॉर्मैट (place): पक्का करें कि place, जगह का आईडी या places/{place_id} संसाधन का नाम हो (उदाहरण के लिए, "places/ChIJIQBpAG2ahYAR_6128GcTUEo"). इसमें कोई अतिरिक्त पाथ सेगमेंट नहीं होना चाहिए और यह जगह के मान्य आईडी से जुड़ा होना चाहिए.
    • फ़ील्ड मास्क (X-Goog-FieldMask): अगर दिया गया है, तो हेडर में मान्य रिस्पॉन्स पाथ का रेफ़रंस होना चाहिए. जैसे, isochrone, isochrone.geoJson या *.
    • अमान्य एपीआई पासकोड (API_KEY_INVALID): X-Goog-Api-Key या ?key= में गलत तरीके से बनाया गया या पहचान में न आने वाला एपीआई पासकोड, API_KEY_INVALID वजह के साथ 400 INVALID_ARGUMENT दिखाता है.
  • 403 PERMISSION_DENIED: पुष्टि या अनुमति नहीं दी जा सकी:
    • अनुरोध में, पुष्टि करने वाले क्रेडेंशियल (X-Goog-Api-Key, ?key= या Authorization: Bearer टोकन) नहीं दिए गए थे.
    • आपके Google Cloud प्रोजेक्ट पर Isochrones API (isochrones.googleapis.com) चालू नहीं है या बिलिंग की सुविधा चालू नहीं है.
    • आपके एपीआई पासकोड पर, एपीआई टारगेट, आईपी पते या एचटीटीपी रेफ़रल से जुड़ी पाबंदियां लगी हैं. इनकी वजह से, isochrones.googleapis.com को भेजे जाने वाले अनुरोध ब्लॉक हो जाते हैं.
  • 404 NOT_FOUND: शुरुआत की जगह को रिज़ॉल्व नहीं किया जा सका या उसे सड़क नेटवर्क पर स्नैप नहीं किया जा सका:
    • place को किसी जगह के तौर पर नहीं दिखाया जा सका. देखें कि जगह का आईडी मान्य और अप-टू-डेट है या नहीं.
    • शुरुआती जगह location या place सेंट्रॉइड, मोड के साथ काम करने वाले सड़क के सेगमेंट से ज़्यादा दूर है. यह दूरी, स्नैप करने की ज़्यादा से ज़्यादा दूरी से ज़्यादा है. यह दूरी करीब 200 मीटर है. हालांकि, WALK और BICYCLE के लिए यह दूरी कम है. निर्देशांक को किसी सार्वजनिक सड़क के करीब ले जाएं या किसी बड़े पार्क या लैंडमार्क के जगह के आईडी के बजाय, सड़क के प्रवेश द्वार के निर्देशांक पास करें.
    • निर्देशांक ऐसे इलाके में है जहां सड़क का डेटा मौजूद नहीं है. जैसे, खुला महासागर.
  • 429 RESOURCE_EXHAUSTED: आपके प्रोजेक्ट ने हर मिनट के लिए तय किए गए कोटे की सीमा को पार कर लिया है. डिफ़ॉल्ट रूप से, हर मिनट 300 अनुरोध किए जा सकते हैं:

    {
      "error": {
        "code": 429,
        "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.",
        "status": "RESOURCE_EXHAUSTED"
      }
    }
    

    क्लाइंट के अनुरोध की दरों को कम करें और रैंडम जिटर के साथ एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करके, 429 रिस्पॉन्स को फिर से भेजें.

  • 503 UNAVAILABLE: यह सेवा कुछ समय के लिए उपलब्ध नहीं है या इस पर लोड ज़्यादा है. एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करके, अनुरोध फिर से करें.

  • 500 INTERNAL: सर्वर में कोई गड़बड़ी हुई है. जैसे, बैकएंड टाइम आउट. एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करके, अनुरोध फिर से करें.