0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Go】Goのwebフレームワークginを使ってHello World(Part1)

Posted at

自己紹介

Qiita初投稿なので軽く自己紹介です。
新卒から3年ぐらいはDBA周りを経験してだらだら無駄な時間を過ごしてましたが、
2年前ぐらいにjavaをメインにしたweb系の会社に転職してからようやく自己学習を始めた出遅れ感満載のエンジニアです。

Goを勉強しようと思った背景

注目言語だからちょっと挑戦してみたかったというのもありますが、
平行処理がすごい楽と知人から聞いたのでどんなもんなんだと興味本位で勉強したいと思ったからです。
webフレームワークを使おうと思った理由としては、自身がweb系が得意としているので、主にjava(Spring)との違いが感じやすいかと思ったからです。

環境

  • Mac(M1): BigSur 11.5.2
  • Go: go1.17.2 darwin/arm64
  • エディタ: GoLand
  • DB: MySQL 8.0
  • パッケージ管理:Go Modules0

とりあえずのHello World

ginを追加して

go get github.com/gin-gonic/gin

main.goを書いて〜

main.go
package main

import (
	"github.com/gin-gonic/gin"
	"work-study-go/web/route"
)

func main() {
	engine:= gin.Default()
	// route.goのDefineRoutesを呼び出す
	route.DefineRoutes(engine)
	// ここでポートを指定する。
	engine.Run(":3000")
}

ルーティングのコード書いて〜
※個人的にルーティングの定義は分けたかったので分けています。

route.go
package route

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func DefineRoutes(r gin.IRouter) {
	r.GET("/", func(ctx *gin.Context){
		// HTTPステータス200,レスポンスのdataに"Hello World"を返却
		ctx.JSONP(http.StatusOK,gin.H{
			"message": "ok",
			"data": "Hello World",
		})
	})
}

実行してみる

go run main.go

Curlで叩いてみる。

curl http://localhost:3000/

route.goに定義したレスポンスの内容が返却されてますね。

 % curl http://localhost:3000/
{"data":"Hello World","message":"ok"}

まとめ

初めてSpringを触った時はHello Worldを表示するだけでもちょっと詰まったのですが、
意外と特に詰まることなく簡単に実装できました。
※HTMLも全然わかってないのにいきなりThymeleafを使ったからですが。。。
まだ勉強中なので至らない点が多々ありますが、これを基にしてwebアプリを作っていきたいと思います。
その過程でまた投稿していくので、これからGoを勉強していく方に少しでも参考になればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?