راهنمای نصب و پیکربندی KrakenD API Gateway

KrakenD یک API Gateway همه کاره و قدرتمند است که به شما کمک می کند API های خود را به سرعت و به راحتی متمرکز، مدیریت و ایمن کنید. اگر به دنبال یک راه حل ساده و کارآمد برای مدیریت پیچیدگی زیرساخت های API خود هستید، KrakenD می‌تواند گزینه مناسبی برای شما باشد. با دنبال کردن این آموزش، یاد خواهید گرفت که چگونه و تنها در چند قدم آسان، KrakenD را برای ایجاد یک دروازه API راه‌اندازی و استفاده کنید.

نصب اولیه KrakenD

اولین قدم این است که KrakenD را روی دستگاه خود نصب کنید. می توانید این کار را با استفاده از یکی از روش های زیر انجام دهید:

  • Docker image: می توانید از KrakenD Docker image برای اجرای API Gateway خود در یک کانتینر استفاده کنید. ایمیج داکر شامل KrakenD به همراه تمام وابستگی ها و تنظیمات آن است.
  • Binary: می توانید باینری را از وب سایت رسمی KrakenD دانلود کرده و بر روی دستگاه خود نصب کنید. باینری برای سیستم عامل های مختلف از جمله ویندوز، مک و لینوکس در دسترس است.

پیکربندی KrakenD

هنگامی که KrakenD را نصب کردید، گام بعدی این است که آن را بر اساس نیاز خود پیکربندی کنید. می توانید از فایل پیکربندی را برای تعیین نحوه رفتار API Gateway خود استفاده کنید. فایل پیکربندی یک فایل JSON است که شامل بخش های مختلفی است که هر کدام جنبه متفاوتی از API Gateway شما را توصیف می کند.
نکته) شما میتوانید به وسیله ابزار ساخت پیکربندی که توسط وبسایت رسمی ارائه شده است اقدام به طراحی فایل پیکربندی کنید.

در اینجا یک نمونه فایل پیکربندی KrakenD آمده است:

{
  "$schema": "https://www.krakend.io/schema/v3.json",
  "version": 3,
  "name": "Configuration by Ali Rashidnahal",
  "timeout": "3000ms",
  "cache_ttl": "300s",
  "output_encoding": "json",
  "endpoints": [
    {
      "endpoint": "/api/v1/auth/login",
      "method": "POST",
      "output_encoding": "json",
      "backend": [
        {
          "url_pattern": "/login",
          "encoding": "json",
          "sd": "static",
          "method": "POST",
          "host": [
            "https://alirashidnahal.com/"
          ],
          "disable_host_sanitize": false
        }
      ],
      "input_headers": [
        "Authorization",
        "Host",
        "Accept",
        "Content-Type"
      ]
    },
    {
      "endpoint": "/api/v1/user/profile",
      "method": "GET",
      "output_encoding": "json",
      "backend": [
        {
          "url_pattern": "/profile",
          "encoding": "json",
          "sd": "static",
          "method": "GET",
          "host": [
            "https://alirashidnahal.com"
          ],
          "disable_host_sanitize": false
        }
      ],
      "input_headers": [
        "Authorization",
        "Host",
        "Accept",
        "Content-Type"
      ]
    }
  ],
  "extra_config": {
    "telemetry/logstash": {
      "enabled": false
    }
  }
}

در این مثال، ما یک سرویس Backend تعریف کرده‌ایم، که endpoint ای است که KrakenD برای واکشی داده‌ها از آن استفاده می‌کند. ما الگوی URL، متد HTTP و فرمت رمزگذاری درخواست را مشخص کرده‌ایم. همچنین آدرس هاست backend را تعریف کرده‌ایم؛ جایی که API Gateway باید درخواست را ارسال کند. علاوه بر این، ما برخی از پارامترهای پیکربندی اضافی را مشخص کرده‌ایم که برای سفارشی کردن رفتار KrakenD استفاده می شود.

شروع کار با KrakenD

هنگامی که KrakenD را پیکربندی کردید، مرحله بعدی شروع راه‌اندازی آن است. بسته به نحوه نصب KrakenD، می توانید این کار را با اجرای باینری KrakenD یا کانتینر Docker انجام دهید.

برای شروع KrakenD با استفاده از باینری، به سادگی دستور زیر را اجرا کنید:

// Replace "/path/to/config/file" with the path to your KrakenD configuration file.
krakend run -c /path/to/config/file

اگر از کانتینر Docker استفاده می کنید، می توانید KrakenD را با استفاده از دستور زیر راه اندازی کنید:

docker run -d -p 8080:8080 -v $PWD:/etc/krakend/ devopsfaith/krakend run --config /etc/krakend/krakend.json

این دستور یک کانتینر KrakenD را راه اندازی می کند و پورت 8080 کانتینر را به پورت 8080 ماشین میزبان نگاشت (Map) می‌کند. همچنین فایل پیکربندی KrakenD را در پوشه /etc/krakend/krakend.json کانتینر نصب می کند.

استقرار KrakenD API Gateway استفاده از Docker Compose

راحت ترین روش برای استقرار و استفاده از نرم‌افزارها کانتینر داکر به همراه فایل تنظیمات Docker compose است. در زیر یک نمونه فایل راه اندازی دروازه API آمده است:

version: "3.9"
services:
  krakend_ce:
    image: devopsfaith/krakend:2.2.1
    container_name: krakend_ce
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - ./config/krakend:/etc/krakend
    command: ["run", "-d", "-c", "/etc/krakend/krakend.json"]

networks:
  krakend_gw:
    name: gateway-network
    driver: bridge

پس نصب داکر و پلاگین compose فایل بالا را با نام docker-compose.yml ذخیره کرده و با دستور ذیل آن را اجرا می‌کنیم:

docker compose up -d

آزمایش کارکرد صحیح API Gateway

با راه‌اندازی و اجرای KrakenD، اکنون می‌توانید API Gateway خود را آزمایش کنید تا مطمئن شوید که مطابق انتظار کار می‌کند. برای آزمایش API Gateway، می توانید از هر HTTP client (فرستنده درخواست‌های http) مانند Curl یا Postman استفاده کنید.

به عنوان مثال، اگر یک Backend برای مسیر /api/v1/user/profile تعریف کرده اید، می توانید از دستور زیر برای واکشی داده‌ها از آن endpoint استفاده کنید:

curl http://localhost:8080/api/v1/user/profile

نکته: آدرس http://localhost:8080 را با آدرس KrakenD API gateway و /api/v1/user/profile را با مسیری به endpoint خود جایگزین کنید.

نتیجه‌گیری

KrakenD یک API Gateway خارق العاده است که مدیریت زیرساخت های API را آسان می کند. با فایل پیکربندی ساده و ویژگی های قدرتمند آن، می توانید در کمترین زمان یک API Gateway کارآمد ایجاد کنید. با دنبال کردن این آموزش، نحوه نصب، پیکربندی و استفاده از KrakenD را برای متمرکز کردن و مدیریت API های خود یاد گرفته‌اید.

دیدگاه خود را بیان کنید