معرفی web framework های معروف در گولنگ
معرفی web framework های معروف در گولنگ
در این مقاله به معرفی سه فریمورک پر کاربرد Gin , Echo , Fiber در زبان برنامه نویسی گولنگ Golang می پردازیم.
معرفی Gin در golang
Gin یک web framework است که به زبان Go (Golang) نوشته شده است. دارای یک API martini-like با عملکرد بسیار بهتر، تا 40 برابر سریعتر به لطف httprouter. اگر به عملکرد و بهره وری خوب نیاز دارید، جین را دوست خواهید داشت. در این بخش به این خواهیم پرداخت که جین چیست، چه مشکلاتی را حل می کند و چگونه می تواند به پروژه شما کمک کند.
امکانات Gin
سریع:
مسیریابی مبتنی بر ریشه، مصرف حافظه کم.عملکرد API قابل پیش بینی
پشتیبانی از میان افزار – Middleware support :
ورودی یک درخواست HTTP را می توان توسط زنجیره ای از میان افزارها و اقدام نهایی مدیریت کرد. به عنوان مثال: Logger، Authorization، GZIP و در نهایت ارسال یک پیام در DB.
بدون کرش کردن – Crash-free :
Gin می تواند panic رخ داده در طول یک درخواست HTTP را بگیرد و آن را بازیابی کند. به این ترتیب سرور شما همیشه در دسترس خواهد بود. به عنوان مثال – امکان گزارش این panic به Sentry نیز وجود دارد!
اعتبار سنجی JSON:
Gin میتواند JSON یک درخواست را تجزیه و تأیید کند – برای مثال، وجود مقادیر مورد نیاز را بررسی میکند.
گروه بندی مسیرها – Routes grouping :
مسیرهای خود را بهتر سازماندهی کنید. مجوز مورد نیاز در مقابل غیر ضروری، نسخه های مختلف API… علاوه بر این، گروه ها را می توان به طور نامحدود بدون کاهش عملکرد تو در تو قرار داد.
مدیریت خطا :
Gin یک راه راحت برای جمع آوری تمام خطاهای رخ داده در طول درخواست HTTP فراهم می کند. در نهایت، یک میانافزار میتواند آنها را در یک فایل گزارش، در یک پایگاه داده بنویسد و آنها را از طریق شبکه ارسال کند.
رندر داخلی – Rendering built-in :
Gin یک API آسان برای استفاده برای رندر JSON، XML و HTML فراهم می کند.
توسعه پذیر – Extendable :
ایجاد یک میان افزار جدید بسیار آسان است، فقط کدهای نمونه را بررسی کنید.
استفاده از Gin در اولین برنامه :
یک ترمینال را باز کنید و به فضایی که میخواهید برنامه Gin خود را ایجاد کنید بروید. سپس دستورات زیر را وارد کنید:
$- mkdir ginapp && cd ginapp
$- go mod init ginapp
$- go get github.com/gin-gonic/gin
سپس یک فایل با نام main.go ایجاد کنید و کد زیر را وارد کنید :
بیایید آنچه را که ایجاد کرده ایم بررسی کنیم. ابتدا فایل Go خود را ساختیم و کتابخانه های لازم را وارد کردیم. سپس تابع main و یک شیء Gin به نام r را ایجاد کردیم. سپس از تابع GET داخلی Gin برای ایجاد مسیر و یک آبجکت زمینه استفاده کردیم. ما یک ساختار داده JSON را با آن شی زمینه به جای رشته ای که در Gin استفاده می کردیم، برگرداندیم. این رویکرد زمانی که به صفحه خود می رویم خروجی متفاوتی را به صورت بصری ارائه می دهد. در مرحله بعد، سرور خود را روی پورت 8080 اجرا می کنیم.
همچنین نیازی به عملکرد لاگر نیست. Gin این خطاها را مدیریت میکند و نشان میدهد که چه IP سعی کرده به چه مسیری بدون دردسر دسترسی پیدا کند.
معرفی Echo در زبان Golang
Echo یک چارچوب وب با کارایی بالا، توسعه پذیر و مینیمالیستی برای Go است. این نرم افزار دارای میان افزار توسعه پذیر، مدیریت خطای HTTP مرکزی، و ارائه الگو برای هر موتور قالب است.
Echo برای مدیریت مجموعه گسترده ای از انواع فایل ها و موتورهای قالب عالی است در حالی که در هر سطحی بسیار مقیاس پذیر است. این ویژگیها به خوبی برای پروژههای گستردهتری که نیاز به یک پایگاه کد مختصر و ساده دارند، مناسب است.
امکانات echo :
Template Rendering :
Echo از قالب بسیار خوبی پشتیبانی می کند و کاربران را قادر می سازد تقریباً با هر موتور قالبی که می خواهند بسازند. این رویکرد هنگام ساخت برنامه های وب بزرگتر انعطاف پذیری ایجاد می کند.
Data Rendering :
Echo از انواع مختلف فایل برای پاسخ های HTTP پشتیبانی می کند. این آرایه از انواع فایل شامل JSON، XML و HTML به عنوان فایل، پیوست، درون خطی، جریان است. این پشتیبانی از نوع فایل گسترده، مجموعه ای قوی از گزینه ها را برای تعامل کاربر ایجاد می کند.
TLS خودکار :
امنیت یکی از حیاتی ترین جنبه های ساخت یک برنامه وب مدرن است. خوشبختانه، Echo به ما اجازه میدهد تا به طور خودکار گواهیهای TLS را از Let’s Encrypt نصب کنیم و به طور پیشفرض برنامههای وب را ایمنتر نگه داریم.
استفاده از Echo در اولین برنامه :
یک ترمینال را باز کنید و به فضایی که میخواهید برنامه Echo خود را ایجاد کنید بروید. سپس دستورات زیر را وارد کنید:
$- mkdir echoapp && cd echoapp
$- go mod init echoapp
$- go get github.com/labstack/echo/v4
سپس یک فایل با نام main.go ایجاد کنید و کد زیر را وارد کنید :
در کد بالا، یک نقطه پایانی API ساده ایجاد کردیم که به درخواست HTTP 200 GET با یک «Hello World!» پاسخ میدهد. رشته ابتدا یک هدر فایل Go عمومی با استفاده از بسته اصلی و اعلام واردات خود ایجاد کردیم. در مرحله بعد، یک شی echo جدید به نام “e” در تابع اصلی خود ایجاد کردیم، سپس از تابع GET داخلی Echo برای ایجاد درخواست HTTP خود استفاده کردیم. متد GET برای درست کار کردن به یک مسیر “/” و تابع handler (c echo.Context) نیاز دارد. سپس یک رشته برای بازگشت در تابع GET ساختیم. این رشته زمانی برمی گردد که API به درستی یک کد وضعیت 200 را دریافت کند. در نهایت، ما از خط e.Logger.Fatal(e.Start(“:8080”)) برای راه اندازی سرور Echo خود و رسیدگی به هر گونه خطایی که ممکن است هنگام راه اندازی آن ایجاد شود، استفاده کردیم. هنگامی که این برنامه را اجرا می کنیم و سپس به localhost:8080 می رویم، باید رشته “سلام جهان” خود را روی صفحه ببینیم. اگر با هر مسیری مانند localhost:8080/hello پیمایش کنیم، با خطا مواجه میشویم. Echo یک نحو دوست داشتنی و مختصر برای ایجاد برنامه های کاربردی وب ارائه می دهد و دارای اسناد آنلاین عالی برای عیب یابی خطاها است. ما به راحتی می توانیم برنامه را با استفاده از توابع HTTP داخلی Echo به یک API کامل RESTful تبدیل کنیم.
معرفی Fiber در Golang
fiber یک چارچوب وب الهام گرفته از Express که در Go نوشته شده است. Fiber یک چارچوب وب Go است که بر روی Fasthttp، سریعترین موتور HTTP برای Go ساخته شده است. این طراحی شده است تا کارها را برای توسعه سریع با در نظر گرفتن تخصیص حافظه و عملکرد صفر آسان کند.
امکانات Fiber :
مسیریابی قوی – Robust Routing:
تنظیم مسیرها برای برنامه شما هرگز به این آسانی نبوده است! درک و کار با تعاریف مسیر مشابه اکسپرس آسان است.
Serve Static Files :
با تعریف مسیرهای ایستا، فایل های استاتیک HTML، CSS و جاوا اسکریپت خود را به راحتی ارائه دهید. همچنین می توانید محتویات چندین دایرکتوری را در یک مسیر ارائه دهید!
عملکرد فوق العاده – Extreme Performance :
از آنجایی که Fiber بر روی Fasthttp ساخته شده است، برنامه های شما از عملکرد بی نظیری لذت خواهند برد!
API-ready :
آیا در حال ساخت یک سرور API هستید؟ Fiber گزینه مناسبی برای ساخت API های REST در Go است. دریافت و ارسال داده ها سریع و آسان است!
پشتیبانی از میان افزار انعطاف پذیر
ردپای حافظه کم :
حافظه کم Fiber به شما این امکان را می دهد که بدون نگرانی زیاد در مورد مقدار حافظه ای که برنامه شما استفاده می کند، ویژگی ها را پیاده سازی کنید. این به شما اجازه می دهد تا به جای ویژگی های فنی، روی برنامه خود و منطق تجاری آن تمرکز کنید.
برنامه نویسی سریع :
ایده خود را بگیرید و در کمترین زمان آن را به واقعیت تبدیل کنید! به لطف API با طراحی خوب و یادگیری آسان، می توانید برنامه خود را با سرعت رکورد توسعه دهید (به خصوص اگر از پس زمینه Express.js می آیید).
Template Engines
پشتیبانی WebSocket
Rate Limiter
استفاده از Fiber در اولین برنامه :
یک ترمینال را باز کنید و به فضایی که میخواهید برنامه Fiber خود را ایجاد کنید بروید. سپس دستورات زیر را وارد کنید:
$- mkdir fiberapp && cd fiberapp
$- go mod init fiberapp
$- go get github.com/gofiber/fiber/v2
سپس یک فایل با نام main.go ایجاد کنید و کد زیر را وارد کنید :
منبع :
https://gin-gonic.com/docs/introduction/
https://mattermost.com/blog/choosing-a-go-framework-gin-vs-echo/
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.