Go: 自作したモジュールの使い方


次のページを参考にしました。
ローカル環境のみでの Go Modules と自作パッケージ

作業フォルダーの準備

mkdir module_test && cd module_test
go mod init gin_work
go get -u github.com/gin-gonic/gin

次のようにプログラムを作成

$ tree
.
├── go.mod
├── go.sum
├── main.go
├── module01
│   └── module01.go
├── module02
│   └── module02.go
└── module03
    └── module03.go
main.go
package main

import "github.com/gin-gonic/gin"
import "module_test/module01"
import "module_test/module02"
import "module_test/module03"

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

    rr.GET("/morning", func(c *gin.Context) {
    str_out := module01.Prog01()
        c.JSON(200, gin.H{
            "message": str_out,
        })
    })


    rr.GET("/afternoon", func(c *gin.Context) {
    str_out := module02.Prog02()
        c.JSON(200, gin.H{
            "message": str_out,
        })
    })

    rr.GET("/evening", func(c *gin.Context) {
    str_out := module03.Prog03()
        c.JSON(200, gin.H{
            "message": str_out,
        })
    })

    rr.Run()
}

// ---------------------------------------------------------------
module01/module01.go
package module01

func Prog01() string {
    rvalue := "Morning"

    return rvalue
}
module02/module02.go
package module02

func Prog02() string {
    rvalue := "Afternoon"

    return rvalue
}
module03/module03.go
package module03

func Prog03() string {
    rvalue := "Evening"

    return rvalue
}

サーバーの実行

go run main.go

クライアントでアクセス

curl http://localhost:8080/morning
curl http://localhost:8080/afternoon
curl http://localhost:8080/evening