概要
今回のブログポストではGolangを使ってウェブサーバーを開発する方法について説明します。Golangではたくさんのウェブフレームワークがありますが、その中で最も有名なウェブフレームワークであるGin
ウェブフレームワークを使う方法について説明します。
- Gin web framework: https://gin-gonic.com/
このブログポストで紹介するソースコードは下記のリンクで確認できます。
ブログシリーズ
このブログポストはGolangでGinウェブフレームワークを使う方法についてシリーズで作成されております。Ginウェブフレームワークの他の使い方について知りたい方は、下記のリンクを参考してください。
- [Golang] Ginを始める
Goプロジェクト生成
Gin
ウェブフレームワークの使い方を確認するため、次のコマンドを実行してGoモジュールを使ってプロジェクトを用意します。
mkdir start
cd start
go mod init github.com/dev-yakuza/study-golang/gin/start
コマンドの実行が終わったら、次のように./go.mod
ファイルが生成されることが確認できます。
module github.com/dev-yakuza/study-golang/gin/start
go 1.17
Ginウェブフレームワークのインストール
Gin
ウェブフレームワークを使うためには、次のコマンドを使ってGin
ウェブフレームワークをインストールします。
go get -u github.com/gin-gonic/gin
そしたら、次のように./go.mod
ファイルにGin
ウェブフレームワークに関する内容が追加されたことが確認できます。
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
)
また、./go.sum
ファイルが生成されたことも確認できます。
Ginウェブフレームワークの使い方
そしたら、Gin
ウェブフレームワークを使ってウェブサーガーを起動してみます。./main.go
ファイルを生成して次のように修正します。
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")
}
コードを詳しく見えみましょう。
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
return r
}
Gin
ウェブフレームワークが提供するgin.Default()
を使ってウェブサーバーを生成して特定URL(/ping
)に関して動作する関数を定義します。この例題では簡単にpong
と言う文字をStatusOK
(200)状態と一緒に返すようにしました。
func main() {
r := setupRouter()
r.Run(":8080")
}
このように特定URLとそれに必要な動作を定義した後、生成されたウェブサーバをrun
関数を使って8080
ポートで実行されるようにしました。
次に、下記のコマンドを使ってウェブサーバーを起動します。
go run ./main.go
そしてウェブブラウザを開いてhttp://localhost:8080/ping
のURLを入力すると次のような結果が確認できます。
pong
完了
これでGolangで最も使ってあるGin
ウェブフレームワークを使ってウェブサーバーを起動する方法についてみてみました。今度はこのGinウェブフレームワークを使う方法についてポスティングする予定です。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。