معرفی
Gin یک فریمورک وب است که با زبان Go (Golang) نوشته شده است. این فریمورک دارای API مشابه Martini با عملکرد بسیار بهتر است، تا ۴۰ برابر سریعتر به لطف httprouter. اگر به عملکرد بالا و بهرهوری خوب نیاز دارید، Gin را دوست خواهید داشت.
در این بخش به معرفی Gin، مشکلاتی که حل میکند و چگونگی کمک آن به پروژه شما میپردازیم.
یا اگر آماده استفاده از Gin در پروژه خود هستید، به شروع سریع مراجعه کنید.
ویژگیها
سریع
مسیریابی مبتنی بر درخت Radix، مصرف حافظه کم. بدون بازتاب (Reflection). عملکرد قابل پیشبینی API.
پشتیبانی از میانافزار
یک درخواست HTTP ورودی میتواند توسط زنجیرهای از میانافزارها و عمل نهایی پردازش شود. به عنوان مثال: Logger، احراز هویت، GZIP و در نهایت ارسال پیام به پایگاه داده.
بدون خرابی
Gin میتواند panic رخ داده در طول یک درخواست HTTP را بگیرد و آن را بازیابی کند. به این ترتیب، سرور شما همیشه در دسترس خواهد بود. به عنوان مثال - امکان گزارش این panic به Sentry نیز وجود دارد!
اعتبارسنجی JSON
Gin میتواند JSON یک درخواست را تجزیه و اعتبارسنجی کند - به عنوان مثال، بررسی وجود مقادیر الزامی.
گروهبندی مسیرها
مسیرهای خود را بهتر سازماندهی کنید. نیازمند احراز هویت در مقابل بدون نیاز، نسخههای مختلف API… علاوه بر این، گروهها میتوانند بدون کاهش عملکرد به صورت نامحدود تو در تو شوند.
مدیریت خطا
Gin راهی مناسب برای جمعآوری تمام خطاهای رخ داده در طول یک درخواست HTTP فراهم میکند. در نهایت، یک میانافزار میتواند آنها را در فایل لاگ، پایگاه داده بنویسد و از طریق شبکه ارسال کند.
رندرینگ داخلی
Gin یک API آسان برای رندرینگ JSON، XML و HTML ارائه میدهد.
قابل توسعه
ساختن میانافزار جدید بسیار آسان است، کافی است کد نمونه را بررسی کنید.
Gin نسخه ۱. پایدار
- مسیریاب بدون تخصیص حافظه.
- همچنان سریعترین مسیریاب و فریمورک HTTP. از مسیریابی تا نوشتن.
- مجموعه کامل تستهای واحد.
- آزموده شده در عمل.
- API ثابت شده، نسخههای جدید کد شما را خراب نمیکنند.