وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

سرور به API خارجی وصل نمی‌شود؛ از کجا شروع کنیم؟

خطای اتصال API را در چهار مرحله DNS، اتصال شبکه، TLS و پاسخ برنامه جدا کنید و اطلاعات امن برای پشتیبانی جمع کنید.

انتشار:
توسط تیم فنی نت‌آرام
۳ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله سرور به API خارجی وصل نمی‌شود؛ از کجا شروع کنیم؟ در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
برنامه روی VPS کار می‌کند، اما هنگام اتصال به یک API خارجی نتیجه نمی‌گیرد. ممکن است مشکل از پیدا کردن نام، مسیر شبکه، تأیید گواهی یا خود پاسخ API باشد. از روی یک خطای کلی نمی‌توان نتیجه گرفت سرویس مقصد تحریم است یا سرور شما خراب است.

جزئیات درخواست را بدون رمز ثبت کنید

نام دامنه API، ساعت همراه منطقه زمانی، متن خطا و نوع عملیات را یادداشت کنید. کلید API، کوکی، نشانی دارای توکن و اطلاعات مشتری نباید در پیام عمومی یا اسکرین‌شات باشند. اگر عملیات مالی یا ثبت سفارش است، از تکرار آن برای آزمایش پرهیز کنید؛ ممکن است درخواست قبلی ثبت شده باشد.
از ارائه‌دهنده API یک نشانی سلامت یا درخواست خواندنی و کم‌خطر بگیرید. مثال‌های زیر از example.com استفاده می‌کنند و نباید به جای API واقعی شما برداشت شوند.

مرحله اول: نام دامنه

کد / دستورgetent ahosts example.com
اگر آدرسی دیده نمی‌شود، resolver، تنظیم DNS و خطای واقعی همان دامنه را بررسی کنید. پاسخ این دستور نشان می‌دهد سیستم‌عامل چه نشانی‌هایی می‌بیند؛ لزوماً تضمین نمی‌کند برنامه داخل کانتینر از همان تنظیم استفاده می‌کند. در صورت استفاده از کانتینر، آزمایش را در محیط همان برنامه هم انجام دهید.

مرحله دوم: اتصال امن

برای یک نشانی خواندنی و مجاز می‌توانید بنویسید:
کد / دستورcurl -v --connect-timeout 10 --max-time 30 https://example.com/
اگر نام پیدا می‌شود ولی اتصال زمانش تمام می‌شود، مسیر، پورت، سیاست شبکه یا در دسترس بودن مقصد از احتمال‌ها هستند. اگر پیام گواهی می‌بینید، نام میزبان، ساعت و زنجیره گواهی را بررسی کنید. بررسی TLS را با گزینه insecure خاموش نکنید.

مرحله سوم: پاسخ HTTP را بخوانید

کد 401 یا 403 یعنی مقصد یا واسط پاسخی داده و مجوز یا سیاست دسترسی باید جدا بررسی شود؛ این با شکست برقراری اتصال یکی نیست. کد 429 می‌تواند محدودیت نرخ باشد. کد 500 نیز الزاماً ثابت نمی‌کند سرور شما مشکل دارد. متن و شناسه درخواست را بدون اطلاعات محرمانه برای ارائه‌دهنده API بفرستید.
اگر فقط شبکه VPS مشکل دارد ولی آزمایش از شبکه دیگر موفق است، زمان، نشانی مقصد، پورت، خروجی بدون رمز و نتیجه هر دو مسیر را به پشتیبانی سرور و ارائه‌دهنده API بدهید. از ابزارهای دور زدن محدودیت بدون بررسی شرایط سرویس استفاده نکنید.

نتیجه هر مرحله چه اقدام متفاوتی دارد؟

اگر getent هیچ پاسخی ندارد، ابتدا resolver همان محیط برنامه را اصلاح کنید. اگر نام پاسخ دارد اما curl timeout می‌دهد، نام مقصد، پورت 443 و زمان آزمایش را به مدیر شبکه بدهید تا مسیر و قانون خروجی همان مقصد را بررسی کند. اگر کد 401 می‌بینید، اتصال HTTP برقرار شده و قدم بعدی بررسی روش احراز هویت با مستندات همان API است؛ کلید را در گزارش ننویسید. پس از اصلاح، همان نشانی سلامت را یک بار دیگر اجرا کنید و سپس یک درخواست خواندنی مجاز برنامه را امتحان کنید.

بعد از تغییر دوباره همان کار را بسنجید

پس از اصلاح DNS، قانون شبکه یا تنظیم API، ابتدا درخواست سلامت را تکرار کنید و سپس یک عملیات واقعی کم‌خطر با نتیجه قابل بررسی انجام دهید. موفق شدن ping یا باز شدن صفحه اصلی یک سرویس، سلامت همان API و احراز هویت آن را ثابت نمی‌کند.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام