/ / 5 Go Framework cho ứng dụng web tiếp theo của bạn

5 Go Framework cho ứng dụng web tiếp theo của bạn

Phát triển web là một trong nhiều lĩnh vực mà bạn có thể sử dụng Go. Nhiều công ty và dự án sử dụng Go trên phần phụ trợ của các ứng dụng web của họ, chủ yếu vì tốc độ, tính dễ sử dụng và hệ sinh thái gói.

Các net / http gói có hầu hết các chức năng bạn sẽ cần để xây dựng các ứng dụng web trong Go. Bạn có thể sử dụng các gói khác từ thư viện tiêu chuẩn giàu tính năng. Các mã hóa gói xử lý chuyển đổi dữ liệu mức thấp và html gói cho phép bạn tương tác với các trang web.

Ngoài ra, hệ sinh thái các gói bên thứ ba của Go cung cấp các tính năng bổ sung để hỗ trợ phát triển web.

1. Khuôn khổ Gin

Gin là một trong những gói phát triển web phổ biến nhất của Go. Gin là một khuôn khổ vi mô có hiệu suất cao để xây dựng các ứng dụng web và dịch vụ vi mô trong Go.

Gin nhanh và cung cấp chức năng kết xuất, phần mềm trung gian và xác thực JSON được tích hợp sẵn. Nó tự hào có khả năng quản lý lỗi và mở rộng dễ dàng. Bạn có thể ghi lại các ứng dụng Gin của mình với thông số kỹ thuật OpenAPI3 và sự vênh vang.

Gin có một API giống Martini và dự án tuyên bố là nhanh hơn bốn mươi lần. Đối với microservices, bạn có thể sử dụng lại các thành phần mô-đun của Gin để phát triển các đường ống xử lý yêu cầu.

Bạn có thể cài đặt khung Gin bằng lệnh này:

go get github.com/gin-gonic/gin

Đây là cách thiết lập một điểm cuối yêu cầu đơn giản với khuôn khổ 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))
}

Bạn có thể tạo một phiên bản bộ định tuyến với Mặc định phương pháp của gin bưu kiện. Các LẤY phương thức cho các yêu cầu GET nhận đường dẫn (điểm cuối) và khai báo hàm xử lý. Hàm ví dụ này trả về một 200 Mã trạng thái HTTP cho máy khách và phản hồi JSON thành công trong nội dung phản hồi.


2. Khung sợi quang

Fiber là một khung giống ExpressJS an toàn cho bộ nhớ được xây dựng dựa trên tốc độ cực nhanh fasthttp bưu kiện. Nó cung cấp hiệu suất tuyệt vời và nhắm mục tiêu người mới bắt đầu và các nhà phát triển phụ trợ Javascript có kinh nghiệm.

Fiber có hầu hết các chức năng bạn cần trong khung phụ trợ. Nó xử lý định tuyến, nhóm yêu cầu, xác thực, tạo khuôn mẫu, móc, xử lý lỗi và hơn thế nữa. Fiber có thể mở rộng và bạn có thể làm cho Fiber nhanh hơn bằng cách sử dụng bộ mã hóa và giải mã tùy chỉnh.

Cài đặt phiên bản mới nhất (v2) của khung Fiber bằng lệnh này:

go get github.com/gofiber/fiber/v2

Đây là cách bạn có thể thiết lập một điểm cuối yêu cầu GET đơn giản với khung công tác 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"))
}

Các Mới phương thức trả về một phiên bản mới của ứng dụng Fiber. Các Lấy phương pháp là để thiết lập LẤY các yêu cầu. Trong trường hợp này, /xin chào endpoint trả về chuỗi Xin chào.

Bạn thiết lập ứng dụng để nghe trên port localhost port 8080 với Nghe phương pháp của ứng dụng.

3. Khuôn khổ Iris

Iris là một khuôn khổ web đa nền tảng, hiệu quả, chính thức và được thiết kế tốt. Bạn có thể sử dụng nó để xây dựng các API di động, hiệu suất cao và các ứng dụng web trong Go. Giống như Fiber, Iris là ExpressJS truyền cảm hứng cho một số mẫu thiết kế trong Iris.

Bạn có thể xây dựng các ứng dụng không máy chủ một cách nhanh chóng với Iris và triển khai chúng trên AWS, Netlify và nhiều dịch vụ khác. Gói Iris có ứng dụng CLI mà bạn có thể sử dụng để tải lại trực tiếp các mẫu Iris và giám sát ứng dụng của mình.

Gói Iris có các tính năng giúp phát triển cực kỳ dễ dàng. Iris có một API giống Sinatra phục vụ cho việc ghi nhật ký, định tuyến, phiên và Websockets. Nó cũng hỗ trợ GRPC, cung cấp tệp, xác thực, ủy quyền và chức năng kiểm tra.

Chạy lệnh này trong phần cuối của không gian làm việc của bạn để cài đặt khuôn khổ Iris vào các mô-đun Go của bạn.

go get github.com/kataras/iris/v12@lastest

Đây là cách bạn có thể thiết lập LẤY yêu cầu với khuôn khổ Iris để chạy trên cổng localhost 8080.

import "github.com/kataras/iris/v12"

func main() {
app := iris.New()

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
}
}

Các ứng dụng biến là phiên bản của ứng dụng Iris mới. Các LẤY trình xử lý trả về một thông báo JSON để yêu cầu trên /xin chào tuyến đường.

4. Khung Beego

Beego là một khung Go dễ sử dụng, thông minh và có hiệu suất cao để xây dựng các ứng dụng web. Beego làm cho việc xây dựng các ứng dụng mô-đun trở nên đơn giản. Nó đi kèm với một bộ định tuyến và ORM (đối tượng-quan hệ ánh xạ) tích hợp, cùng với chức năng tạo khuôn mẫu.

Beego tích hợp các khả năng dành riêng cho Go với giao diện và nhúng cấu trúc. Nó có cấu trúc API tuyệt vời, được tối ưu hóa về tốc độ với hỗ trợ phiên và triển khai và nội bộ hóa.

Beego phổ biến rộng rãi và nhiều công ty, từ Opera đến Huawei, Tencent và Weico, sử dụng Beego trong sản xuất.

Bạn có thể sử dụng lệnh này để cài đặt Beego Framework trong dự án của mình.

go get -u github.com/beego/beego/v2

Đây là cách bạn có thể thiết lập một LẤY yêu cầu điểm cuối API với khuôn khổ Beego.

import "github.com/beego/beego/v2/server/web"

type ControllerInstance struct {
web.Controller
}

func (controller *ControllerInstance) Get() {
controller.Ctx.WriteString("hello world")
}

func main() {
web.Router("/hello", &ControllerInstance{})
web.Run()
}

Các ControllerInstance struct là điểm nhập của ứng dụng Beego. Các Lấy hàm xử lý chứa logic cho một LẤY yêu cầu /xin chào điểm cuối. Nó trả về chuỗi “hello world” dưới dạng phản hồi.

5. Khung Revel

Revel tỏa sáng vì sự linh hoạt mà nó cung cấp cho việc xây dựng các ứng dụng web. Bạn có thể sử dụng định tuyến an toàn kiểu của Revel, xây dựng bộ điều khiển và sử dụng các mẫu Go với Revel.

Revel cung cấp chức năng định tuyến, mã hóa và giải mã JSON dễ dàng và xử lý phiên. Nó cũng bao gồm các chức năng để xử lý bộ nhớ đệm, gỡ lỗi và kiểm tra các ứng dụng web. Revel có gói CLI để xây dựng CLI cho ứng dụng của bạn. Bạn có thể cung cấp các tệp tĩnh với Revel và xây dựng các ứng dụng trò chuyện với chức năng Websocket của nó.

Cài đặt khung công tác Revel trong thư mục dự án của bạn bằng lệnh này:


go get github.com/revel/revel

Thật dễ dàng để thiết lập một ứng dụng Revel. Đây là một hàm xử lý đơn giản cho một LẤY yêu cầu điểm cuối với khung công tác Revel.

import (
"github.com/revel/revel"
)

type Model struct {
Message string `json:"message"`
Description string `json:"description"`
}

type App struct {
*revel.Controller
}

func (app App) Hello() revel.Result {
model := Model{
Message: "success",
Description: "Hello!, World",
}

app.Response.ContentType = "application/json"
return app.RenderJSON(model)
}

Các Ứng dụng struct là điểm nhập của ứng dụng Revel. Trình xử lý của bạn sẽ triển khai cấu trúc ứng dụng. Loại nội dung phản hồi là JSON và Xin chào hàm xử lý trả về một cấu trúc JSON được mã hóa.

Hãy coi chừng sự khác biệt giữa bộ định tuyến và khung làm việc

Bạn sẽ tìm thấy nhiều gói web trong hệ sinh thái Go, hầu hết trong số đó là bộ định tuyến hoặc khuôn khổ. Các bộ định tuyến dùng để nhận các yêu cầu thông qua giao thức HTTP.

Bạn sẽ cần các gói bổ sung để hoạt động với bộ định tuyến. Giống như những thứ trong hướng dẫn này, hầu hết các khung công tác đều bao gồm các bộ định tuyến tích hợp cùng với các chức năng khác.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *