رفتن به محتوا

اسناد

جین یک چارچوب وب HTTP با کارایی بالا است که با Go نوشته شده است. با ارائه API مشابه Martini با عملکرد بسیار بالاتر—تا ۴۰ برابر سریع‌تر—به لطف استفاده از httprouter. Gin برای ساخت APIهای REST، برنامه‌های وب و میکروسرویس‌هایی که سرعت و بهره‌وری توسعه‌دهنده در آنها حیاتی است، طراحی شده است.

چرا Gin را انتخاب کنیم؟

Gin سادگی مسیر‌دهی سبک Express.js را با ویژگی‌های عملکرد Go ترکیب می‌کند و برای موارد زیر ایده‌آل است:

  • ساخت APIهای REST با راندمان بالا
  • توسعه میکروسرویس‌هایی که باید درخواست‌های همزمان زیادی را مدیریت کنند
  • ایجاد برنامه‌های وب با سرعت پاسخ‌دهی بالا
  • نمونه‌سازی سریع سرویس‌های وب با کمترین تنظیمات

ویژگی‌های کلیدی Gin:

  • مسیر‌دهنده بدون تخصیص حافظه – مسیر‌دهی بسیار بهینه بدون تخصیص حافظه heap
  • عملکرد بالا – بنچمارک‌ها سرعت بالاتر نسبت به سایر چارچوب‌های وب Go را نشان می‌دهند
  • پشتیبانی از میان‌افزار (Middleware) – سیستم میان‌افزار قابل توسعه برای احراز هویت، لاگ‌گیری، CORS و غیره
  • ایمنی در برابر کرش – میان‌افزار بازیابی داخلی از توقف سرویس جلوگیری می‌کند
  • اعتبارسنجی JSON – اعتبارسنجی و بایندینگ خودکار درخواست/پاسخ JSON
  • گروه‌بندی مسیرها – سازمان‌دهی مسیرهای مرتبط و اعمال میان‌افزار مشترک
  • مدیریت خطاها – مدیریت و لاگ متمرکز خطاها
  • رندر داخلی – پشتیبانی از JSON، XML، قالب‌های HTML و موارد بیشتر
  • قابل توسعه – اکوسیستم وسیع میان‌افزار و افزونه‌های جامعه کاربری

شروع کار

پیش‌نیازها

  • نسخه Go: جین نیاز به Go نسخه 1.23 یا بالاتر دارد
  • آشنایی پایه با Go: آشنایی با سینتکس و مدیریت پکیج‌ها مفید است

نصب

با استفاده از پشتیبانی ماژول Go، کافیست Gin را در کد خود وارد کنید و Go آن را حین ساخت دانلود می‌کند:

import "github.com/gin-gonic/gin"

اولین برنامه Gin شما

در اینجا یک مثال کامل آورده شده است که سادگی Gin را نشان می‌دهد:

package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// یک روتر Gin با میان‌افزار پیش‌فرض (logger و recovery) بسازید
r := gin.Default()
// تعریف یک endpoint ساده GET
r.GET("/ping", func(c *gin.Context) {
// ارسال پاسخ JSON
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
// اجرای سرور روی پورت 8080 (پیش‌فرض)
// سرور روی 0.0.0.0:8080 (localhost:8080 در ویندوز) گوش می‌دهد
r.Run()
}

اجرای برنامه:

  1. کد بالا را به عنوان main.go ذخیره کنید

  2. برنامه را اجرا کنید:

    Terminal window
    go run main.go
  3. مرورگر خود را باز کنید و به http://localhost:8080/ping بروید

  4. باید ببینید: {"message":"pong"}

این مثال چه مواردی را نمایش می‌دهد:

  • ساخت روتر Gin با میان‌افزار پیش‌فرض
  • تعریف endpointهای HTTP با توابع ساده
  • ارسال پاسخ JSON
  • راه‌اندازی سرور HTTP

مراحل بعدی

پس از اجرای اولین برنامه Gin، این منابع را برای یادگیری بیشتر بررسی کنید:

📚 منابع یادگیری

  • راهنمای سریع Gin – آموزش جامع با مثال‌های API و تنظیمات ساخت
  • مخزن نمونه‌ها – نمونه‌های آماده برای اجرا با کاربردهای مختلف Gin:
    • توسعه API REST
    • احراز هویت و میان‌افزار
    • بارگذاری و دانلود فایل‌ها
    • ارتباط WebSocket
    • رندر قالب‌ها

آموزش‌های رسمی

🔌 اکوسیستم میان‌افزار

Gin دارای اکوسیستم غنی میان‌افزار برای نیازهای رایج توسعه وب است. میان‌افزارهای جامعه را کشف کنید:

  • gin-contrib – مجموعه رسمی میان‌افزار شامل:

    • احراز هویت (JWT، Basic Auth، Session)
    • CORS، محدودیت نرخ، فشرده‌سازی
    • لاگ‌گیری، متریک‌ها، ردیابی
    • سرویس فایل‌های استاتیک، موتورهای قالب
  • gin-gonic/contrib – میان‌افزارهای اضافی جامعه