مقدمه

Gin یم فریم ورک وب ساخته شده با Go است که امکاناتی مانند martini دارد (یکی دیگر از فریم ورک های وب گو) ولی با کارایی بالاتر چیزی حدود 40 برابر سریع تر با تشکر از httprouter.اگه به عملکرد فوق ابعاده ایی نیاز دارید عاشق Gin میشید.

در این بخش ما به بررسی جین میپردازیم که چه مشکلاتی را حل می کند و چگونه می تواند به پروژه شما کمک کند.

یا اگر آماده استفاده از Gin برای پروژه خود هستید ، به [شروع سریع] (https://gin-gonic.com/docs/quickstart/) سر بزنید.

امکانات

سرعت بالا(سریع)

مسیریابی مبتنی بر درخت ردیکس(Radix tree based routing) ، چاپ ردپا روی حافظه کم(small memory foot print). بدون تأمل. عملکرد قابل پیش بینی API.

پشتیبانی از میان افزارها(middleware)

یک درخواست HTTP ورودی میتواند از میان زنجیره ایی از میان افزار ها بگردد و سپس به یک اقدام نهایی منجرب شود. برای مثال: زنجیره ی میان افزار ها -> Logger, Authorization, GZIOP و در نهایت یک اقدام یا پروسه نهایی که منجرب به ذخیره ی یک پیام در دیتابیس میشود.

(بدون خرابی)Crash-free

Gin می تواند در هنگام درخواست HTTP دچار پنیک(کرش) شود و آن را بازیابی کند. به این ترتیب سرور شما همیشه در دسترس خواهد بود و پایدار میماند. به عنوان مثال - همچنین می توانید این پنیک(کرش) را به Sentry گزارش دهید!

JSON validation(اعتبار سنجی فرمت JSON)

جین می تواند JSON ورودی را تجزیه و اعتبار سنجی کند - به عنوان مثال ، بررسی مقادیر مورد نیاز.(فیلد های اجباری مورد نیاز)

Routes grouping(گروه بندی کردن مسیر ها یا ایپی ای ها)

مسیرهای خود را بهتر سازماندهی کنید. گروه ها می توانند بدون محدودیت عملکرد به صورت نامحدود تو در تو قرار بگیرند.

Error management(مدیریت خطا)

جین یک روش مناسب برای جمع آوری تمام خطاهایی که در هنگام درخواست HTTP رخ داده است فراهم می کند. در نهایت ، یک میان افزار می تواند آنها را در یک فایل log یا یک پایگاه داده بنویسد و از طریق شبکه ارسال کند.

Rendering built-in(رندر داخلی)

Gin استفاده آسان از API را برای استفاده از JSON ، XML و HTML فراهم می کند.

Extendable(توسعه پذیر)

ساخت یک میان افزار جدید بسیار ساده است. تنها کافیه به نمونه کدها یه نگاه بندازید.

آخرین تغییرات 29.04.2022: update: set github branch in config file (#189) (d146b35)