Библиотека Go QR Code

Генерация QR-кодов на Go

Go идеально подходит для высокопроизводительной генерации QR-кодов в микросервисах и CLI-инструментах. Используйте библиотеку go-qrcode для локальной генерации или API QRCode.fun для стилизованного вывода.

Установка

Установите Go-библиотеку для QR-кодов с помощью go get.

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

Генерация QR-кодов на Go

Примеры кода с использованием библиотеки 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

Генерация QR-кодов через API на Go

Вызовите API QRCode.fun из Go для генерации стилизованных QR-кодов.

Интеграция API Go
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-кода

Попробуйте сгенерировать QR-код на Go прямо сейчас.

Предпросмотр QR

Нативная библиотека vs API

Сравните использование Go-библиотеки для QR-кодов с API QRCode.fun.

ФункцияНативная библиотекаQRCode.fun API
Сложность настройкиgo get + importОдин HTTP-запрос
КастомизацияРазмер, коррекция ошибокПолное оформление: цвета, формы, логотипы
Офлайн-поддержкаДаТребуется интернет
ОбслуживаниеОбновление go.modВсегда актуально
Форматы выводаPNGPNG, SVG

Сценарии использования QR-кодов в Go

Типичные сценарии для QR-кодов в Go-приложениях.

Микросервисы

Генерируйте QR-коды в Go-микросервисах для API-ответов, вебхуков и событийных архитектур.

CLI-инструменты

Создавайте утилиты командной строки, генерирующие QR-коды для обмена Wi-Fi, сокращения URL или отображения в терминале.

Облачные функции

Разворачивайте генерацию QR как бессерверные функции на AWS Lambda или Google Cloud Functions с использованием Go.

DevOps и инфраструктура

Генерируйте QR-коды для URL развёртывания, дашбордов мониторинга и конфигурационных эндпоинтов.

Часто задаваемые вопросы

Популярные вопросы о генерации QR-кодов на Go.

skip2/go-qrcode — самая популярная Go-библиотека для QR-кодов. Она генерирует PNG-изображения и поддерживает настраиваемые размеры и уровни коррекции ошибок.

Начните генерировать QR-коды на Go

Используйте наш бесплатный генератор или интегрируйте API в свои Go-сервисы.