مستندات
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()}اجرای برنامه:
-
کد بالا را به عنوان
main.goذخیره کنید -
برنامه را اجرا کنید:
Terminal window go run main.go -
مرورگر خود را باز کنید و به
http://localhost:8080/pingبروید -
باید ببینید:
{"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 - میانافزارهای اضافی جامعه