دریافت داده از API در n8n یکی از مهم‌ترین قابلیت‌هایی است که امکان اتصال پروژه شما به سرویس‌های خارجی را فراهم می‌کند. بسیاری از سیستم ها داده‌های خود را از طریق API ارائه می‌کنند و n8n با ترکیب قدرتمند Nodeها این امکان را می‌دهد که همان داده‌ها را به صورت خودکار دریافت کرده، پردازش کنید و در گردش کارهای مختلف مورد استفاده قرار دهید. از دریافت اطلاعات آب و هوا، قیمت ارز، وضعیت سفارش‌ها، تحلیل داده‌ها یا اتصال به سرویس‌های داخلی گرفته تا اتصال به REST API‌های پیچیده، همه از طریق n8n قابل انجام است.

چرا دریافت داده از API در n8n مهم است؟

به کمک HTTP Request Node می‌توانید با هر API که از روش‌های استاندارد مانند GET، POST، PUT و DELETE استفاده می‌کند ارتباط برقرار کنید. n8n یک لایه ساده و قدرتمند برای ارتباط با API می‌سازد و قدرتمندترین مزیت آن این است که نیازی به نوشتن کد پیچیده ندارید. شما به راحتی می‌توانید داده‌ها را دریافت کنید، آن ها را اعتبارسنجی کنید، تغییر دهید، ذخیره کنید و در فرایندهای دیگر مثل ارسال ایمیل، ذخیره در دیتابیس یا ارسال پیام تلگرام استفاده کنید. این قابلیت باعث می‌شود پروژه شما همیشه به روز و متصل به سرویس‌های خارجی باشد.

پیش نیازهای اتصال n8n به API خارجی

برای دریافت داده از API باید چند نکته را رعایت کنید:
۱. API باید در دسترس باشد و محدودیت درخواست نداشته باشد
۲. Token یا Key سرویس را در صورت نیاز باید داشته باشید
۳. n8n باید امکان خروجی اینترنت داشته باشد
۴. فرمت پاسخ API باید JSON، XML یا Text باشد

شناخت HTTP Request Node در n8n

این Node یکی از پراستفاده‌ترین ابزارهای n8n است و قابلیت‌های زیر را دارد:
ارسال درخواست های GET، POST، PUT و DELETE
ارسال Header‌های سفارشی
ارسال Query Parameter
ارسال Body در قالب JSON یا فرم
پردازش خودکار JSON پاسخ
استفاده از Credential برای API‌های محافظت شده

ساخت Workflow برای دریافت داده از API خارجی

در این بخش یک گردش کار کامل می‌سازیم که داده را از یک سرویس خارجی دریافت کرده و در اختیار مراحل بعدی قرار می‌دهد. برای مثال در این بخش قیمت ارز را از یک API عمومی دریافت می‌کنیم.

گام ۱: ساخت Webhook برای دریافت درخواست از کلاینت

یک Node از نوع Webhook اضافه کنید.
Method را روی GET قرار دهید.
Path را مثلا getPrice بگذارید.
Response Mode را Last Node قرار دهید تا نتیجه مستقیم به کاربر بازگردد.

گام ۲: اضافه کردن HTTP Request برای دریافت داده از API

فرض می‌کنیم API زیر نرخ لحظه ای دلار را برمی‌گرداند:

https://api.exchangerate.host/latest?base=USD

Node HTTP Request را اضافه کنید و تنظیمات زیر را انجام دهید:
Method: GET
URL: همان آدرس API
Response Format: JSON
Timeout: 30s
اگر API نیاز به Header دارد آن را اضافه کنید.
بعد از اجرای این مرحله داده کامل نرخ ارز باز خواهد گشت.

گام ۳: پردازش داده دریافتی با Function

برای اینکه داده خام را تبدیل به خروجی استاندارد کنیم از این Function استفاده کنید:

// n8n v1.8+ Ready
const data = $json;

if (!data.rates || !data.rates.IRR) {
  return [
    {
      json: {
        ok: false,
        error: "Currency rate not found"
      }
    }
  ];
}

return [
  {
    json: {
      ok: true,
      usd: data.rates.IRR,
      date: data.date
    }
  }
];

این کد نرخ دلار به ریال را استخراج می‌کند و خروجی ساده و خوانا ایجاد می‌کند.

گام ۴: ارسال پاسخ HTTP به کاربر

برای ارسال نتیجه نهایی یا Response Mode را روی Last Node بگذارید یا یک Respond to Webhook اضافه کنید:

{
  "status": "ok",
  "usd_to_irr": "{{$json['usd']}}",
  "date": "{{$json['date']}}"
}

مثال واقعی از اتصال به API‌های خارجی

۱. دریافت وضعیت سفارش از API فروشگاه

GET https://shop.com/api/orders/123
Headers:
Authorization: Bearer YOUR_TOKEN

۲. دریافت اطلاعات آب و هوا

GET https://api.weatherapi.com/v1/current.json?key=API_KEY&q=Tehran

۳. دریافت اطلاعات کاربر

GET https://example.com/api/user?id=55

مثال گردش کار کامل

برای ساخت یک سیستم ساده بررسی وضعیت سرویس می‌توانید:
یک Cron تنظیم کنید تا هر ۵ دقیقه یک API را چک کند
با Function وضعیت را تحلیل کنید
اگر مشکل بود با Telegram پیام هشدار ارسال کنید
این ترکیب یک سیستم مانیتورینگ کامل ایجاد می‌کند.

نکات امنیتی در اتصال به API

Token خود را در Credential قرار دهید و مستقیم داخل Node قرار ندهید.
اگر API حساس است از SSL مطمئن شوید.
درخواست‌های زیاد برای API‌هایی که محدودیت دارند ارسال نکنید.
پاسخ‌های دریافتی را قبل از پردازش اعتبارسنجی کنید.

نکات حرفه‌ای برای دریافت داده از API

از Query Parameter برای فیلتر کردن داده‌ها استفاده کنید.
اگر نیاز دارید چند درخواست پشت سر هم ارسال کنید می‌توانید از Split in Batches استفاده کنید.
در صورتی که API داده‌های زیاد برمی‌گرداند از Pagination استفاده کنید.
برای تبدیل فرمت داده‌ها از Function یا Code Node کمک بگیرید.
برای ساخت گزارش‌های روزانه API را با Cron ترکیب کنید.

در قسمت بعد

در قسمت دهم یاد می‌گیرید چگونه با استفاده از Merge Node داده‌های مختلف را ترکیب کرده و یک خروجی یکپارچه بسازید. این قابلیت برای ساخت گزارش‌های حرفه‌ای و تجمیع داده بسیار کاربردی است.