2
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とGinのQuickStart)

Posted at

なんとなく触ってみたいなと前々から思ってたので、チャレンジ。普段はJavaを書いています。なので、型が欲しいという思いでGoに触れてみます。僕はGoについての知識0なので、どこまで簡単に作れるのかもみていきたいです。

いろんな規則や、わからないことがあれば、以下の2つのサイトを探りながら書いていきたいと思います。

事前準備

homebrew

このサイトからinstallできます

go

コマンド打つだけ、簡単

brew install go

versionは1.14

.sh
ri2kku~:$: 
->> go version
go version go1.14 darwin/amd64

何がともあれGoのQuickStart

Go公式のQuickStartを参考に世界に挨拶してみます
https://golang.org/

ファイル作成 -> コード書く -> 動かす、まで一気に

.sh
ri2kku~/sandbox/go/go-sample:$: 
->> vi hello_world.go
hello_world.go
package main

import "fmt"

func main() {
  fmt.Println("Hello, World")
}
ri2kku~/sandbox/go/go-sample:$: 
->> go run hello_world.go 
Hello, World

雑感

10分ほどで世界に挨拶できました!こんなに簡単なら早く触っておけばよかったです。シンタックス等はJavaと結構違っているのかな?セミコロンがないことにすごく違和感を感じていました。

Gin

次はFWを使って簡単なアプリを作成してみます
一番使われてそうなFWを選びました
https://github.com/gin-gonic/gin

インストール

Goのversionは1.1以降が必要らしいです

go get -u github.com/gin-gonic/gin

GinのQuickStart

書いて動かすところまで

exmaple.go
package main

import "github.com/gin-gonic/gin"

func main() {
  r := gin.Default()
  r.GET("/ping", func(c *gin.Context) {
    c.JSON(200, gin.H{"message": "pong",})
  })
  r.Run()
}

localhost:8080でlistenしてる

ri2kku~/sandbox/go/gin-sample:$: 
->> go run example.go
GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on localhost:8080

http://localhost:8080/pingにアクセスすると、pongが返ってくるようになっているのを確認できました

ri2kku~/sandbox/go/gin-sample:$: 
->> curl http://localhost:8080/ping
{"message":"pong"}

雑感

すごく簡単に作れる模様?インストールがすごく楽ですぐに何かを試したい!という時にはさらっとかけそうな印象を持ちました、この時点では。まだ海面に触れたようなものなので、次はもう少し深く潜って簡単なWebアプリを作成したいと思います。

2
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
2
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?