Go QRコードライブラリ

GoでQRコードを生成

Goはマイクロサービスやcliツールでの高パフォーマンスQRコード生成に最適です。go-qrcodeライブラリでローカル生成するか、QRCode.fun APIでスタイル付き出力を取得できます。

インストール

go getを使用してGo QRコードライブラリをインストールします。

go get
go get github.com/skip2/go-qrcode

GoでQRコードを生成

go-qrcodeライブラリを使用したコード例。

Basic QR Code Generation
package main

import "github.com/skip2/go-qrcode"

func main() {
    err := qrcode.WriteFile("https://qrcode.fun", qrcode.Medium, 256, "qrcode.png")
    if err != nil {
        panic(err)
    }
}
QR Code as Bytes (HTTP Handler)
package main

import (
    "net/http"
    "github.com/skip2/go-qrcode"
)

func qrHandler(w http.ResponseWriter, r *http.Request) {
    data := r.URL.Query().Get("data")
    if data == "" {
        data = "https://qrcode.fun"
    }

    png, err := qrcode.Encode(data, qrcode.Medium, 256)
    if err != nil {
        http.Error(w, err.Error(), 500)
        return
    }

    w.Header().Set("Content-Type", "image/png")
    w.Write(png)
}

func main() {
    http.HandleFunc("/qr", qrHandler)
    http.ListenAndServe(":8080", nil)
}
QRCode.fun API

GoでAPIを使ってQRコードを生成

GoからQRCode.fun APIを呼び出してスタイル付きQRコードを生成します。

Go API連携
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "data":   "https://qrcode.fun",
        "width":  300,
        "height": 300,
        "type":   "png",
        "margin": 10,
        "dotsOptions": map[string]string{
            "color": "#1A2B3C",
            "type":  "rounded",
        },
        "cornersSquareOptions": map[string]string{
            "color": "#8564C3",
            "type":  "extra-rounded",
        },
        "backgroundOptions": map[string]string{
            "color": "#FFFFFF",
        },
    }

    body, _ := json.Marshal(payload)
    resp, err := http.Post(
        "https://qrcode.fun/api/generate-qr-styled",
        "application/json",
        bytes.NewBuffer(body),
    )
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    data, _ := io.ReadAll(resp.Body)
    fmt.Println(string(data[:100]))
}

QRコードライブプレビュー

今すぐGoでQRコードを生成してみましょう。

QRプレビュー

ネイティブライブラリ vs API

Go QRコードライブラリとQRCode.fun APIの比較。

機能ネイティブライブラリQRCode.fun API
セットアップの複雑さgo get + import単一のHTTPリクエスト
カスタマイズサイズ、誤り訂正レベルフルスタイリング:カラー、シェイプ、ロゴ
オフラインサポートはいインターネット接続が必要
メンテナンスgo.modを更新常に最新
出力形式PNGPNG, SVG

Go QRコードの使用例

GoアプリケーションでのQRコードの一般的なシナリオ。

マイクロサービス

GoマイクロサービスでAPI応答、Webhook、イベント駆動アーキテクチャ用のQRコードを生成します。

CLIツール

Wi-Fi共有、URL短縮、ターミナル表示用のQRコードを生成するコマンドラインユーティリティを構築します。

クラウド関数

Goを使用してAWS LambdaやGoogle Cloud Functions上のサーバーレス関数としてQR生成をデプロイします。

DevOpsとインフラ

デプロイURL、モニタリングダッシュボード、設定エンドポイント用のQRコードを生成します。

よくある質問

GoでのQRコード生成に関する一般的な質問。

skip2/go-qrcodeが最も人気のあるGo QRコードライブラリです。PNG画像を生成し、設定可能なサイズと誤り訂正レベルをサポートしています。

GoでQRコード生成を始めましょう

無料のジェネレーターを使用するか、APIをGoサービスに統合しましょう。