common

module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2025 License: MIT

README

Common Library

此目錄包含專案中常用的工具和函式庫,提供可重用的功能模組。

目錄結構

common/
├── baseProtocol/
│   ├── baseProtocol.go          # baseProtocol 的主要實現
│   ├── baseProtocol_test.go     # baseProtocol 的單元測試
├── external/                    # 外部依賴相關模組
├── fasthttpClient/
│   ├── fasthttpClient.go        # fasthttpClient 用於呼叫第三方 API 的功能
├── fiber/
│   ├── handler/
│   │   ├── healthcheck/
│   │   │   ├── healthcheck.go   # 健康檢查的處理器
│   │   ├── tracehandler/
│   │       ├── config.go        # TraceHandler 的配置
│   ├── router/
│   │   ├── healthcheck/
│   │       ├── healthcheck.go   # 健康檢查的路由設定
│   ├── fullLog/
│       ├── fullLog.go           # 全量日誌記錄功能
├── ilog/
│   ├── ilog.go                  # 日誌系統的主要實現
│   ├── ilog_model.go            # 日誌系統的數據模型
│   ├── ilog_write.go            # 日誌系統的寫入功能
│   ├── ilog_test.go             # 日誌系統的單元測試
│   ├── utils.go                 # 日誌系統的輔助工具
├── jsonutils/
│   ├── time.go                  # 時間相關的 JSON 工具
│   ├── time_test.go             # 時間工具的單元測試
│   ├── sql.go                   # SQL 與 JSON 的轉換工具
│   ├── entity.go                # 通用 JSON 實體工具
│   ├── entity_test.go           # JSON 實體工具的單元測試
│   ├── bytes.go                 # Bytes 的 JSON 工具
├── logstash/
│   ├── logstash.go              # Logstash 客戶端的實現
├── mgo/
│   ├── model.go                 # MongoDB 連線的模型定義
│   ├── mgo.go                   # MongoDB 連線管理與操作
│   ├── mgo_test.go              # MongoDB 相關功能的單元測試
├── mysql/
│   ├── mysql.go                 # MySQL 連線管理與操作
│   ├── mysql_model.go           # MySQL 連線的模型定義
│   ├── mysql_test.go            # MySQL 相關功能的單元測試
│   ├── mysql_utils_test.go      # MySQL 工具的單元測試
├── querytool/
│   ├── querytool.go             # QueryTool 的主要實現
│   ├── querytool_test.go        # QueryTool 的單元測試
├── redis/
│   ├── redis.go                 # Redis 連線管理與操作
│   ├── model.go                 # Redis 的模型定義
├── tools/
│   ├── tools.go                 # 通用工具函式

功能模組

QueryTool

QueryTool 是一個用於執行查詢的工具,包含以下功能:

  • Execute 方法:模擬執行查詢並返回結果。
  • ParseAndValidateDynamicQueryParams 函數:解析並驗證動態的 Query Parameters。
fasthttpClient

fasthttpClient 提供與第三方 API 的高效互動功能,基於 fasthttp 實現。

baseProtocol

baseProtocol 提供基礎協議處理功能,適用於多種場景的協議解析與封裝。

healthcheck

healthcheck 提供健康檢查的處理器和路由設定,用於檢查服務的可用性。

fulllog

fulllog 提供全量日誌記錄功能,記錄請求和回應的完整內容,便於調試和追蹤。

ilog

ilog 是一個高效的日誌系統,支持以下功能:

  • 支援多種日誌級別(如 DEBUG、INFO、ERROR 等)。
  • 支援本地和雲端日誌寫入。
  • 支援結構化日誌數據(如 JSON 格式)。
  • 提供標籤、追蹤 ID 和 HTTP 請求/回應的記錄功能。
jsonutils

jsonutils 提供 JSON 與其他數據格式的轉換工具,包含以下功能:

  • UnixMilliUnix:時間戳的 JSON 序列化與反序列化。
  • Entity:通用 JSON 實體工具,支持靈活的數據結構。
  • SQLByte:SQL 與 JSON 的數據轉換。
  • Bytes:處理 []byte 的 JSON 工具。
logstash

logstash 提供與 Logstash 的整合功能,包含以下功能:

  • 支援 TCP 協議與 Logstash 進行日誌傳輸。
  • 支援自定義環境、服務名稱與日誌結構。
  • 提供多種日誌級別(如 INFO、ERROR 等)。
使用範例
// 創建客戶端
config := &logstash.Config{
    Host:        "localhost",
    Port:        5044,
    Protocol:    "tcp",
    Environment: "production",
    Service:     "my-service",
}
client, err := logstash.NewClient(config)
if (err != nil) {
    log.Fatal(err)
}
defer client.Close()

// 記錄日誌
client.Info("這是一條信息日誌", map[string]interface{}{
    "user_id": 123,
    "action": "login",
})
mgo

mgo 提供 MongoDB 的連線管理與操作功能,包含以下功能:

  • 支援多個 MongoDB 連線的初始化與管理。
  • 提供連線池的管理,確保高效的資源使用。
  • 支援從環境變數中讀取 MongoDB 連線資訊。
mysql

mysql 提供 MySQL 的連線管理與操作功能,包含以下功能:

  • 支援多個 MySQL 連線的初始化與管理。
  • 提供連線池的管理,確保高效的資源使用。
  • 支援將查詢結果轉換為通用的 map 或 JSON 格式。
  • 提供交易管理工具(如 Rommit 函數)。
redis

redis 提供 Redis 的連線管理與操作功能,包含以下功能:

  • 支援單節點與集群模式的 Redis 連線。
  • 提供靈活的配置選項(如 URL、配置結構或 Redis 原生選項)。
  • 支援 Redis 的多種命令與功能(如管道、事務、Pub/Sub 等)。
tools

tools 提供通用的工具函式,包含以下功能:

  • 字串處理(如加密、哈希、隨機字串生成)。
  • JSON 處理(如自動解析 JSON 字串或檔案)。
  • 時間處理(如獲取當前毫秒級時間戳)。
  • 網路檢查(如確認伺服器是否啟動)。
  • 其他實用工具(如結構體打印、函式名稱獲取)。
測試

所有模組均包含對應的單元測試,測試文件位於與模組相同的目錄中,文件名以 _test.go 結尾。

如何執行測試

請確保已安裝 Go 環境,並執行以下命令來運行測試:

cd /Users/ekkoshih/Desktop/va/common
go test ./...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL