5 چارچوب کاربردی زبان Go
توسعه وب یکی از زمینه های بسیاری است که در آن شما می توانید Go استفاده کنید. بسیاری از شرکت ها و پروژه ها از Go در پشت برنامه های کاربردی وب خود استفاده می کنند که عمدتاً برای سرعت، سهولت استفاده، و اکوسیستم بسته بندی آن است.
بسته Net/Http دارای بیشتر قابلیت هایی است که شما نیاز به ساخت برنامه های کاربردی وب در Go خواهید داشت. شما می توانید بسته های دیگر از کتابخانه استاندارد غنی از ویژگی استفاده کنید. بسته encoding سطح پایین رسیدگی می کند و بسته HTML به شما امکان تعامل با صفحات وب را می دهد.
فراتر از این، اکوسیستم Go از بسته های شخص ثالث فراهم می کند ویژگی های اضافی برای کمک به توسعه وب است.
Gin یکی از محبوب ترین بسته های توسعه وب گوگل است. یک میکرو چارچوب بسیار کاربردی برای ساخت برنامه های کاربردی وب و میکروسرویس ها در Go است.
سریع و قابلیت رندر داخلی، میان افزار و اعتبارسنجی JSON را فراهم می کند. این نرم افزار دارای مدیریت خطای آسان و قابلیت توسعه پذیری است. شما می توانید برنامه های Gin خود را با مشخصات و اسکرین شات های OpenAPI۳ مستندسازی کنید.
Gin دارای یک API شبیه به مارتینی است و این پروژه ادعا می کند که چهل برابر سریع تر است. برای میکروسرویس ها، شما می توانید از اجزای مدولار Gin برای توسعه pipelines کنترل درخواست استفاده کنید.
با این دستور می توانید فریم ورک Gin را نصب کنید:
go get github.com/gin-gonic/gin
در اینجا به چگونگی ایجاد یک نقطه پایانی درخواست ساده با چارچوب Gin می پردازیم.
import (
"github.com/gin-gonic/gin"
"log"
"net/http"
)
func main() {
router := gin.Default()
router.GET("/hello", func(context *gin.Context) {
context.JSON(http.StatusOK, gin.H{"success": "Successfully hit the endpoint"})
})
log.Fatalln(http.ListenAndServe(":8080", nil))
}
شما می توانید یک نمونه مسیر با روش پیش فرض بسته Gin ایجاد کنید. روش GET برای درخواست های GET در مسیر (نقطه پایانی)و یک اعلامیه عملکرد کنترل کننده قرار می گیرد. این تابع نمونه یک کد وضعیت ۲۰۰ HTTP را به کلاینت و یک پاسخ موفق JSON را در بدنه پاسخ برمی گرداند.
فیبر یک چارچوب امن و شبیه به ExpressJS است که بر پایه بسته فست بوت سریع ساخته شده است. این برنامه عملکرد خوبی دارد و مبتدیان و توسعه دهندگان باتجربه جاوا اسکریپت را هدف قرار می دهد.
فیبر بیشتر قابلیت های مورد نیاز شما را در قالب بک گراند در اختیارتان قرار می دهد. این سیستم مسیریابی، گروه بندی درخواست ها، اعتبارسنجی، قالب بندی، قلاب ها، کنترل خطا و بسیاری موارد دیگر را کنترل می کند. فیبر قابل گسترش است و شما می توانید با استفاده از یک کدکننده و رمزگشای سفارشی، فیبر را سریع تر کنید.
آخرین نسخه (v۲)چارچوب فیبر را با این دستور نصب کنید:
go get github.com/gofiber/fiber/v2
در اینجا می توانید یک نقطه پایانی درخواست GET ساده با چارچوب Fiber ایجاد کنید.
import "github.com/gofiber/fiber/v2"
func main() {
app := fiber.New()
app.Get("/hello", func(ctx *fiber.Ctx) error {
return ctx.SendString("Hello")
})
log.Fatal(app.Listen(":8080"))
}
روش جدید یک نمونه جدید از یک برنامه Fiber را برمی گرداند. روش Get برای راه اندازی درخواست های GET است. در این حالت، نقطه پایانی / Hello, رشته Hello را برمی گرداند.
شما این برنامه را به گونه ای تنظیم کرده اید که با استفاده از روش Listen برنامه را روی پورت ۸۰۸۰ صدا بزنید.
آیریس یک چارچوب وب میان پلتفرمی، کارآمد، کامل و به خوبی طراحی شده است. شما می توانید از آن برای ساخت API های با کارایی بالا و قابل حمل و برنامه های وب در Go استفاده کنید. همانند Fiber، Iris و اکسپرس جی اس نیز الهام بخش برخی از الگوهای طراحی در Iris است.
شما می توانید برنامه های بدون سرور بسازید و آن ها را در AWS، Netlify و بسیاری سرویس های دیگر مستقر کنید. بسته Iris دارای یک برنامه CLI است که می توانید از آن برای بارگذاری زنده قالب های Iris و نظارت بر برنامه خود استفاده کنید.
بسته Iris ویژگی هایی دارد که توسعه را بسیار آسان می کند. آیریس یک API شبیه به Sinatra دارد که برای ثبت، مسیریابی، جلسات و وبگردی کاربرد دارد. همچنین از قابلیت های GRPC، اشتراک گذاری فایل، احراز هویت، اعتبارسنجی و تست پشتیبانی می کند.
این دستور را در ترمینال فضای کاری خود اجرا کنید تا چارچوب Iris روی ماژول های Go شما نصب شود.
go get github.com/kataras/iris/v12@lastest
در اینجا می توانید یک درخواست GET را با چارچوب Iris برای اجرا در پورت ۸۰۸۰ محلی تنظیم کنید.
import "github.com/kataras/iris/v12"
func main() {
app := iris.New() // new Iris instance
app.Handle("GET", "/hello", func(ctx iris.Context) {
_, err := ctx.JSON(iris.Map{"message": "hello"})
if err != nil {
return
}
})
err := app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
if err != nil {
return
}
}
متغیر برنامه نمونه ای از یک برنامه آیریس جدید است. کنترل کننده GET یک پیام JSON را برای درخواست در مسیر / Hello برمی گرداند.
Beego یک چارچوب آسان، هوشمند و بسیار کاربردی برای ساخت برنامه های وب است. Beego ساخت اپلیکیشن های ماژولار را ساده می کند. این سیستم با یک ORM داخلی (نقشه بردار شی گرا)و مسیریاب در کنار قابلیت مسیریابی همراه است.
Beego قابلیت های خاص Go را با رابط ها و تعبیه ساختار یکپارچه می کند.این نرم افزار ساختار API خوبی دارد که برای سرعت با پشتیبانی از نشست و استقرار و داخلی سازی بهینه شده است.
Beego بسیار گسترده است و بسیاری از شرکت ها از اپرا گرفته تا هواوی، تنسنت و ویکو از Beego در محصولات خود استفاده می کنند.
شما می توانید از این دستور برای نصب چارچوب Beego در پروژه خود استفاده کنید.
go get -u github.com/beego/beego/v2
به این ترتیب می توانید یک نقطه پایانی API درخواست GET ساده با چارچوب Beego ایجاد کنید.
import "github.com/beego/beego/v2/server/web"
type ControllerInstance struct {
web.Controller // entry point for the beego app
}
func (controller *ControllerInstance) Get() {
controller.Ctx.WriteString("hello world")
}
func main() {
web.Router("/hello", &ControllerInstance{}) // mounting with beego
web.Run() // running beego app
}
ابزار ControllerInstance نقطه ورود اپلیکیشن Beego است. تابع Get Hander شامل منطق درخواست GET به نقطه پایانی / Hello است. رشته “hello world” را به عنوان پاسخ برمی گرداند.
Revel به خاطر انعطاف پذیری که برای ساخت اپلیکیشن های تحت وب فراهم می کند، می درخشد. شما می توانید از مسیریابی امن از نوع Revel، ساخت کنترلر و استفاده از قالب های Go با Revel استفاده کنید.
Revel قابلیت هایی را برای مسیریابی، رمزگذاری و رمزگشایی آسان و مدیریت جلسه فراهم می کند.همچنین شامل عملکردهایی برای کنترل قفل گشایی، اشکال زدایی و تست برنامه های تحت وب است.Revel یک بسته CLI برای ساخت CLI برای برنامه های شما دارد.شما می توانید با Revel از فایل های استاتیک استفاده کنید و با قابلیت Websocket آن، برنامه های چت بسازید.
با این دستور چارچوب Revel را در دایرکتوری پروژه خود نصب کنید:
go get github.com/revel/revel
به راحتی می توان اپلیکیشن Revel را نصب کرد. این یک تابع ساده برای نقطه پایانی درخواست GET با چارچوب Revel است.
import (
"github.com/revel/revel"
)
type Model struct { // simple model struct
Message string `json:"message"`
Description string `json:"description"`
}
type App struct {
*revel.Controller // entry point for the requests
}
func (app App) Hello() revel.Result {
model := Model{
Message: "success",
Description: "Hello!, World",
}
app.Response.ContentType = "application/json"
return app.RenderJSON(model)
}
ساختار App نقطه ورود برنامه Revel است. کنترل کننده های شما ساختار برنامه را پیاده سازی خواهند کرد. نوع محتوای پاسخ JSON است و تابع Hello handler یک ساختار JSON کدگذاری شده را برمی گرداند.
پیوند : makeuseof
پیوند منابع