رفتن به محتوا

مستندات

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

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

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

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

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

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

شروع کار

پیش‌نیازها

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

نصب

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

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

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

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

package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// ایجاد روتر Gin با میان‌افزار پیش‌فرض (لاگر و بازیابی)
r := gin.Default()
// تعریف یک نقطه پایانی 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 با میان‌افزار پیش‌فرض
  • تعریف نقاط پایانی HTTP با توابع handler ساده
  • بازگرداندن پاسخ‌های JSON
  • راه‌اندازی سرور HTTP

گام‌های بعدی

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

منابع آموزشی

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

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

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

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

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

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