GolangでINIファイルを読み込む方法とテンプレートプロジェクトの作成

program_1614450578.webp
目次

golangでiniファイルを読み込むサンプル

GolangでINIファイルを読み込む方法と、それを活用したテンプレートプロジェクトの作成方法を紹介します。アプリケーションで設定値やAPIキーなどを管理する際に役立ちます。

  1. GolangでINIファイルを読み込むサンプル
  2. プロジェクトのファイル構成を作成し、必要なファイルを作成します。
  3. go.modファイルを作成し、プロジェクトの依存関係を管理します。
  4. Config.iniファイルに設定値やAPIキーを記載します。
  5. config.goファイルでINIファイルを読み込み、構造体に詰め込む処理を実装します。
  6. Trade.goファイルでconfig.goの機能を利用し、INIファイルの内容を表示します。

ファイル構成

E:.
│  Config.ini
│  go.mod
│  go.sum
│  Trade.go
│
└─Config
        Config.go

初期ファイル作成

作り方は何でも良いがとりあえず

mkdir Config
touch Config.ini
touch Trade.go
touch Config/Config.go

mod 作成

go mod init config

modファイルとsumファイルを作成します。

Config.ini

ファイルの中身にはこのように記載します。

[bitflyer]
api_key = XXXXXX
api_secret = XXXXXXXXXXXXXXXXX

XXXXには実際に利用するサービスのAPIキーやシークレットキーを記載します。

config.go

iniファイルを読み込み、構造体に詰め込む部分を記載します。

コード全体は下記の通り

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 read file: %v", err)
        os.Exit(1)
    }

    Config = ConfigList{
        ApiKey:    cfg.Section("bitflyer").Key("api_key").String(),
        ApiSecret: cfg.Section("bitflyer").Key("api_secret").String(),
    }
}

iniファイルをロードし、取り込み失敗時にはerrによりソフトが終了する部分。

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

定義した構造体の中身にiniファイルの中身を記載する箇所。 Sectionにはiniファイルで定義した []の中身に書いてあるセクション名を記載する。 Keyについてはセクションに含まれる要素に当たる、それぞれの名称を記載する。

    Config = ConfigList{
        ApiKey:    cfg.Section("bitflyer").Key("api_key").String(),
        ApiSecret: cfg.Section("bitflyer").Key("api_secret").String(),
    }

Trade.go

自前で作成したconfigをパッケージとして読み込んでいます。 特に何も変わった部分はないですが… printlnでiniファイルの中身を表示します。

package main

import (
    "fmt"

    "config/config"
)

func main() {
    fmt.Println(config.Config.ApiKey)
    fmt.Println(config.Config.ApiSecret)
}

まとめ

GolangでINIファイルを読み込む方法を学ぶことで、設定値やAPIキーを外部ファイルに記載し管理することができるようになります。これにより、アプリケーションの保守性やセキュリティが向上します。今後は、この知識を活かして自動取引ツールなどの開発を進める予定です。

Related Post

おすすめの商品

>