【Golang製フレームワーク】Ginで簡単なREST APIを作成する方法

GinでREST APIを作ってみよう

まずは、新しくディレクトリを作って、その中で作業します。

[tanaka:~] $ mkdir gin_rest_api && cd gin_rest_api

作業ディレクトリに入ったら、go.modファイルを作成します。コマンドの形式は以下の通りです。

$ go mod init 任意のプロジェクト名

今回は、「gin_rest_api」というプロジェクト名にするので以下のコマンドを実行します。

[tanaka:~/gin_rest_api] $ go mod init gin_rest_api

上記を実行したらgo.modファイルが作成されているはずです。

[tanaka:~/gin_rest_api] $ ls
go.mod

そしたら次は、ginのパッケージをインストールします。

[tanaka:~/gin_rest_api] $ go get -u github.com/gin-gonic/gin

すると今度はgo.sumというファイルがディレクトリ内に作成されます。

[tanaka:~/gin_rest_api] $ ls
go.mod  go.sum

ここまで完了したら、main.goというファイルを作成します。

[tanaka:~/gin_rest_api] $ touch main.go

main.goに以下のコードを貼り付けます。

/helloというURLにGETでリクエストをすると、”hello, world!”という文字列をレスポンスとして返す処理です。

package main

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

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

ものすごくシンプルですが、一応これでREST APIは作成できました。

curlコマンドでAPIを叩いてみる

まず、APIを叩く前にGinのサーバーを立ち上げます。

[tanaka:~/gin_rest_api] $ go run main.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] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080

上記のように表示されればGinのサーバーが立ち上がり、8080ポートにリクエストを送ってAPIが叩けます。

もう一つ別でターミナルの画面を立ち上げ、curlコマンドを実行してみます。

[tanaka:~/gin_rest_api] $ curl localhost:8080/hello
{"message":"hello, world!"}

このようにJSONが返ってくれば処理は成功です。

タイトルとURLをコピーしました