技術ブログ移設しました click here!

Go で REST API を作る事始め【GoLang, Gin】

どうも1時間前にGoを学び始めたともわか(@tomorrowSLog)です

Goを使ってローカル環境でサクッと遊んでみたので備忘録としてそのアウトプットをします。

レッツGoooooooo!!!!!!

目次

  • 開発環境
  • Goのインストール
  • Hello Go
  • create go.mod
  • create makefile
  • get gin
  • go run
  • まとめ

開発環境

macOS モハベ

Goのインストール

ってした気がする。詳しくはwebで!

Hello Go

最初だし Hello Go! をしよう

main.go

go run

create go.mod

modules管理ファイルを作ります

go.mod

中身はこんな感じ(自動生成)

参考 Go Modulesの概要とGo1.12に含まれるModulesに関する変更budougumi0617.github.io

create makefile

シェルスクリプトをごにょごにょして、開発を楽にしてくれるmakefileも作ります

makefile

makefileの中身を仮置きします(意味は後々…)

参考 Go言語開発を便利にするMakefileの書き方qiita.com

get gin

それではメインのAPI部分をいい感じに実装できるフレームワークGinを使っていきましょう。

Gin とは

Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin.

めっちゃパフォーマンス良くて、めっちゃ使いやすいGoのフレームワークだぜ!!!

って書いてます。
参考 Gin Web Frameworkgithub.com

Gin の導入

もはや giuhubREADME に書いてあるままなのですが、

go.sum という新しいファイルができ、 go.mod もアップデートされたことがわかります。

update main.go

main.go をAPI仕様書き換えていきます

こちらも READMEQuick start に書いてあるままを拝借。

go run

make dev

Hello Go! の時と同じように go run をしたいところですが、 先ほどつくった makefile をうまく活用していきましょう。

make dev と実行してみてください

このようにサーバーが立ち上がりました。

makefile で先ほど書いた内容は dev って打ったら go run main.go を実行してねというおまじないでした。

なので、 make dev と実行することで

  1. makefile から dev を呼び出し go run main.go が実行される
  2. main.go のなかの処理が読まれる
  3. サーバーが立ち上がる

となったわけですね

access localhost:8080

ここでブラウザからlocalhostにアクセスしても 404 page not found が帰ってきます。なぜでしょう。

main.go を詳しくみてみると、 GET /ping で JSONを返すよと書いてあります。

それでは今度は localhost:8080/ping にアクセスします。
すると今度は {"message":"pong"} このように期待するJSON形式のレスポンスが返ってきました。

まとめ

  • Goはいいぞぉ
  • Ginはいいぞぉ

ということで、これからどんどんGoを学んでいきたいと思います。ではでは

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です