Go言語でconfigファイルを読み込む!簡単なサンプルを紹介


公式ドキュメント→https://gopkg.in/go-ini/ini.v1

パッケージをインストール

go get gopkg.in/go-ini/ini.v1

ファイル構成

.
├── config
│   └── config.go
├── config.ini
└── main.go

iniファイルを作成

config.ini
[api]
api_key = aaaaaa
api_secret = bbbbbbb

[db]
password = ccccc
etc...

上記の[api][db]のようにセクションごとに分けてあげると管理がしやすい。
クォーテーションなどで囲む必要はなし。

configファイルを作成

config/config.go
package config

import "gopkg.in/ini.v1"

type ConfigList struct {
    APIKey     string
    APISecret  string
    Password   string
}

var Config ConfigList

func init() {
    cfg, err := ini.Load("config.ini")
    if err != nil {
        //エラー処理
    }

    Config = ConfigList{
        APIKey:     cfg.Section("api").Key("api_key").String(),
        APISecret:  cfg.Section("api").Key("api_secret").String(),
        Password:   cfg.Section("db").Key("password").String(),
    }
}

configの値を取得

main.go
package main

import "./config"

func main() {
    Println(config.Config.APIKey)
    Println(config.Config.APISecret)
    Println(config.Config.Password)
}

こんな感じでconfigの値を取得できます。

今回はiniファイルを作成しましたがTOMLを使った方法もある。
この人の記事がとても分かりやすかったのでおすすめです。
https://qiita.com/futoase/items/fd697a708fcbcee104de