🎃

【Go】config.iniファイルの読み込み

2023/07/25に公開

はじめに

Go言語の勉強メモです。
config.iniで指定してあるAPIキーを読み込ませる部分の実装になります。

フォルダ階層

config/
├ main.go
├ config.ini
├ go.mod
├ config/
| └ config.go

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

config.goファイル内の、"gopkg.in/ini.v1"パッケージを以下の手順でインストールする。

・go mod init sample(任意の名前)
→ go.modの作成(go関連のパッケージをインストールするのに必要)
・go get gopkg.in/ini.v1

実装

config.ini
; セクションヘッダー
[api_info]
api_key = XXXXXXXXXX
api_secret = YYYYYYYYY
config.go
package config

//必要なパッケージのインポート
import (
	"log"
	"os"
	"gopkg.in/ini.v1"
)

type ConfigList struct {
	ApiKey    string
	ApiSecret string
}

var Config ConfigList

func init() {
	cfg, err := ini.Load("config.ini")
	if err != nil {
		log.Printf("failed to init file: %v", err)
		os.Exit(1)
	}

	Config = ConfigList{
		ApiKey:    cfg.Section("api_info").Key("api_key").String(),
		ApiSecret: cfg.Section("api_info").Key("api_secret").String(),
	}
}
main.go
package main

import (
	"sample/config"
	"fmt"
)

// 読み込ませたAPIキーを表示させる
func main() {
	fmt.Println(config.Config.ApiKey)
	fmt.Println(config.Config.ApiSecret)
}

ターミナルで、go run main.goのコマンドを叩き、ApiKeyとApiSecretの中身が表示されれば成功!

参考

現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発

Discussion