- Install Gin with the following command:
go get -u github.com/gin-gonic/gin
- After installation, we proceed to code in the “main.go” file with a simple function as follows:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
- Then run the main file with the following command:
go run cmd/server/main.go
Note: Depending on your folder organization, the command to run the main.go file may differ from mine. I have introduced how to organize the structure in the article: here
- After running the above command, we will receive the following result:
- Great, let's try calling the ping endpoint with the following command:
curl http://localhost:8080/ping
- The result received will be:
- Now, let's try to split the simple router:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
v1 := r.Group("/v1")
{
v1.GET("/ping", Pong) // curl http://localhost:8080/v1/ping
}
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
func Pong(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
}
Note: After changing the code as above, remember to run the command: "go run cmd/server/main.go" to apply the new code.
- Next, let's try running the new router with the following command:
curl http://localhost:8080/v1/ping
- The result received will be:
- Now, let's try to get the parameter from Param:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
v1 := r.Group("/v1")
{
v1.GET("/ping/:name", Pong) // curl http://localhost:8080/v1/ping
}
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
func Pong(c *gin.Context) {
name := c.Param("name")
c.JSON(http.StatusOK, gin.H{
"message": "pong:::: " + name,
})
}
Note: After changing the code as above, remember to run the command: "go run cmd/server/main.go" to apply the new code.
- Try to get the param with the following command:
curl http://localhost:8080/v1/ping/hieunguyen
- The result received will be:
- Next, we will try to get the parameter from the Query:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
v1 := r.Group("/v1")
{
v1.GET("/ping", Pong) // curl http://localhost:8080/v1/ping
}
r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
func Pong(c *gin.Context) {
id := c.Query("id")
c.JSON(http.StatusOK, gin.H{
"message": "pong:::: " + id,
})
}
Note: After changing the code as above, remember to run the command: "go run cmd/server/main.go" to apply the new code.
- Try to get the query with the following command:
curl http://localhost:8080/v1/ping\?id=12345
- The result received will be:
You can directly refer to Gin on GitHub with the following link:here
Give me a reaction and a follow for motivation 😘
If you found this article useful and interesting, please share it with your friends and family. I hope you found it helpful. Thanks for reading 🙏
Let's get connected! You can find me on:
- Medium: Quang Hieu (Bee) -- Medium
- Dev: Quang Hieu (Bee) -- Dev
- Linkedin: Quang Hieu (Bee) -- Linkedin
- Buy Me a Coffee: Quang Hieu (Bee) -- buymeacoffee
Top comments (0)