Điều kiện cần
- Biết cài đặt môi trường phát triển và lập trình căn bản với Golang
- Biết cách tải các module khác của Golang về máy
- Biết cách tạo các module, package trong Golang
- Biết cách xây dựng RESTful APIs, các quy tắc căn bản để tạo RESTful APIs
Giới thiệu Gin-Gonic Framework
Một trong những web framework đầu tiên dành cho Go là Martini nhưng dự án đó không còn được tiếp tục nữa. Tuy vậy, các framework ngày nay vẫn luôn lấy cảm hứng từ những tính năng của Martini, vốn vô cùng mạnh mẽ và tiện lợi.
Gin hay còn gọi là Gin-Gonic là một trong những dự án như vậy. Nó sử dụng một phiên bản tùy biến của gói httprouter vì tốc độ xử lí cực kì nhanh, điều này làm cho nó vô cùng hoàn hảo để phát triển API hiệu xuất cao. Song song đó, nó cung cấp các trình xử lý cho nhiều trường hợp sử dụng phổ biến: middleware, file uploading, logging, binding front-end HTML component với cấu trúc dữ liệu back-end, …
Gin-Gonic là web framework của Golang được dùng nhiều nhất
Cài đặt Gin Framework
Để cài đặt package Gin có thể sử dụng lệnh sau:
go get github.com/gin-gonic/gin
Khởi tạo dự án
- Tạo thư mục chứa dự án
mkdir gin-api cd gin-api
- Tạo module của dự án
go mod init gin-api
- Tạo file main.go
touch main.go
Viết mã lệnh cho dự án
main.go
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
api := router.Group("/api")
{
api.GET("/test", func(ctx *gin.Context) {
ctx.JSON(200, gin.H{
"message": "test successful",
})
})
}
router.Run(":8080")
}
Biên dịch và chạy thử dự án
- Để chạy thử dự án bạn thực hiện lệnh sau:
go run main.go
- Để biên dịch và chạy dự án bạn thực hiện những lệnh sau:
go build ./gin-api
Kiểm thử kết quả trả về của API
- Kiểm thử kết quả bằng lệnh
curl
như sau:curl localhost:8080/api/test
- Kiểm thử kết quả bằng Postman:
Mã nguồn tham khảo: https://github.com/sinhdev/go-lang-demo/tree/main/gin-api
Tài liệu tham khảo
https://godoc.org/github.com/gin-gonic/gin
https://github.com/gin-gonic
https://medium.com/@dinhhuy_67517/gin-framework-là-gì-49cfe86f29ad
https://medium.com/wesionary-team/getting-started-with-go-gin-framework-6943f8f5f882
https://medium.com/@dablu/our-first-microservice-in-golang-using-gin-gonic-as-framework-4db155e46fc6
https://dev.to/codehakase/building-a-web-app-with-go-gin-and-react-5ke