خطاها و عیب‌یابی

‫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 (یا HTTP code) برای رسیدگی به خطاها به‌صورت برنامه‌ریزی‌شده استفاده کنید. نوشتار message برای توسعه‌دهندگان درنظر گرفته شده است و ممکن است تغییر کند، بنابراین آن را تجزیه نکنید.

هنگام کار با Isochrones API، ممکن است با کدهای وضعیت خطای رایج زیر مواجه شوید:

  • 400 INVALID_ARGUMENT: درخواست حاوی پارامترهای نامعتبر یا نحو نادرست است:
    • محدودیت‌های مدت: مطمئن شوید travelDuration حداقل "1s" باشد، با "s" (مانند "1800s") پایان یابد، و از حد حالت فراتر نرود: 3600s (۶۰ دقیقه) برای DRIVE و TWO_WHEELER، یا 7200s (۱۲۰ دقیقه) برای WALK و BICYCLE. مقادیر صفر ("0s")، منفی، و مقادیر زیرثانیه کمتر از ۱ ثانیه (مثل "0.5s") رد می‌شوند.
    • اولویت ترافیک: مطمئن شوید routingPreference روی TRAFFIC_AWARE تنظیم نشده باشد وقتی travelMode روی WALK یا BICYCLE است. ترافیک زنده فقط برای DRIVE و TWO_WHEELER پشتیبانی می‌شود.
    • شمارش‌های الزامی: مطمئن شوید که هر دو 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=، 400 INVALID_ARGUMENT را با دلیل API_KEY_INVALID برمی‌گرداند.
  • 403 PERMISSION_DENIED: اصالت‌سنجی یا صدور مجوز ناموفق بود:
    • هیچ اعتبارنامه اصالت‌سنجی (X-Goog-Api-Key، ?key=، یا نماد Authorization: Bearer) در درخواست ارائه نشده است.
    • Isochrones API (isochrones.googleapis.com) در پروژه Google Cloud شما فعال نیست یا صورت‌حساب فعال نیست.
    • کلید میانای برنامه‌سازی کاربردی شما دارای محدودیت‌های ارجاع‌دهنده HTTP، نشانی IP، یا هدف میانای برنامه‌سازی کاربردی است که درخواست‌ها به isochrones.googleapis.com را مسدود می‌کند.
  • 404 NOT_FOUND: مبدأ حل نشد یا به شبکه جاده‌ای متصل نشد:
    • place به مکان تبدیل نشد. بررسی کنید که شناسه مکان معتبر و به‌روز باشد.
    • مبدأ location یا مرکزوار place دورتر از حداکثر فاصله چسبیدن (حدود ۲۰۰ متر، یا کمتر برای WALK و BICYCLE) نسبت‌به بخش جاده سازگار با حالت قرار دارد. مختصات را به جاده عمومی نزدیک‌تر کنید یا به‌جای شناسه مکان پارک بزرگ یا نقطه عطف، مختصات ورودی جاده را ارسال کنید.
    • مختصات در منطقه‌ای است که داده‌های جاده‌ای ندارد (مانند اقیانوس باز).
  • 429 RESOURCE_EXHAUSTED: پروژه شما از حد سهمیه دقیقه‌ای خود فراتر رفته است (پیش‌فرض ۳۰۰ درخواست در دقیقه):

    {
      "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: خطای سرور داخلی رخ داده است، مانند اتمام مهلت باطن. بااستفاده از عقب‌گرد نمایی، درخواست را دوباره امتحان کنید.