Outline
In this blog post, I will introduce how to develop a web server with Golang. There are many web frameworks in Golang, but I will show you how to use Gin
web framework which is the most popular web framework of Golang for the development of web server.
- Gin web framework: https://gin-gonic.com/
You can see the full source code of the blog post at the following link.
Blog series
This blog post is made in the series about how to use Gin web framework in Golang. If you want to see the other usages of Gin web framework, please check out the following blog posts.
- [Golang] Getting started with Gin
Create Go project
To check how to use Gin
web framework, execute the following command to prepare the Go project by the Go module.
mkdir start
cd start
go mod init github.com/dev-yakuza/study-golang/gin/start
After then, you can see the ./go.mod
file is created like the below.
module github.com/dev-yakuza/study-golang/gin/start
go 1.17
Install Gin web framework
To use Gin
web framework, execute the following command to install the Gin
web framework.
go get -u github.com/gin-gonic/gin
After then, you can see the contents about Gin
web framework are added to the ./go.mod
file like the below.
module github.com/dev-yakuza/study-golang/gin/start
go 1.17
require (
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/gin-gonic/gin v1.7.7 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-playground/validator/v10 v10.10.1 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/leodido/go-urn v1.2.1 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/ugorji/go/codec v1.2.7 // indirect
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect
golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12 // indirect
golang.org/x/text v0.3.7 // indirect
google.golang.org/protobuf v1.28.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)
Also, you can see the ./go.sum
file is created.
How to use Gin
Next, let’s see how to use Gin
web framework to make a web server. Create the ./main.go
file and modify it like the below.
package main
import "github.com/gin-gonic/gin"
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong")
})
return r
}
func main() {
r := setupRouter()
r.Run(":8080")
}
Let’s see the code one by one.
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
return r
}
You can make a web server by gin.Default()
provided by Gin
web framework. And, you can bind the specific URL(/ping
) to the function which does something you want. In here, I just return the string pong
with StatusOK
(200) status code.
func main() {
r := setupRouter()
r.Run(":8080")
}
After you define the functions for the specific URLs, you can run the web server by the run
function with the 8080
port.
Next, execute the following command to run the web server.
go run ./main.go
And then, when you open the web browser with the http://localhost:8080/ping
URL, you can see the result like the below.
pong
Completed
Done! we’ve seen how to use Gin
web framework to make a web server in Golang. From now on, I will post about how to use Gin web framework more and more.
Was my blog helpful? Please leave a comment at the bottom. it will be a great help to me!
App promotion
Deku
.Deku
created the applications with Flutter.If you have interested, please try to download them for free.