Генерация QR-кодов на Go
Go идеально подходит для высокопроизводительной генерации QR-кодов в микросервисах и CLI-инструментах. Используйте библиотеку go-qrcode для локальной генерации или API QRCode.fun для стилизованного вывода.
Установка
Установите Go-библиотеку для QR-кодов с помощью go get.
go get github.com/skip2/go-qrcodeГенерация QR-кодов на Go
Примеры кода с использованием библиотеки go-qrcode.
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)
}
}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)
}Генерация QR-кодов через API на Go
Вызовите API QRCode.fun из Go для генерации стилизованных QR-кодов.
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 прямо сейчас.
Нативная библиотека vs API
Сравните использование Go-библиотеки для QR-кодов с API QRCode.fun.
| Функция | Нативная библиотека | QRCode.fun API |
|---|---|---|
| Сложность настройки | go get + import | Один HTTP-запрос |
| Кастомизация | Размер, коррекция ошибок | Полное оформление: цвета, формы, логотипы |
| Офлайн-поддержка | Да | Требуется интернет |
| Обслуживание | Обновление go.mod | Всегда актуально |
| Форматы вывода | PNG | PNG, 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.
Начните генерировать QR-коды на Go
Используйте наш бесплатный генератор или интегрируйте API в свои Go-сервисы.