Перейти к содержимому

Документация

Gin — это высокопроизводительный HTTP веб-фреймворк, написанный на Go. Он предоставляет API в стиле Martini, но со значительно лучшей производительностью — до 40 раз быстрее — благодаря httprouter. Gin предназначен для создания REST API, веб-приложений и микросервисов, где важны скорость и продуктивность разработчика.

Почему стоит выбрать Gin?

Gin сочетает простоту маршрутизации в стиле Express.js с характеристиками производительности Go, что делает его идеальным для:

  • Создания высоконагруженных REST API
  • Разработки микросервисов, которым необходимо обрабатывать множество одновременных запросов
  • Создания веб-приложений, требующих быстрого времени отклика
  • Быстрого прототипирования веб-сервисов с минимальным шаблонным кодом

Ключевые возможности Gin:

  • Маршрутизатор без аллокаций — Чрезвычайно эффективная по памяти маршрутизация без выделений в куче
  • Высокая производительность — Бенчмарки показывают превосходную скорость по сравнению с другими веб-фреймворками Go
  • Поддержка middleware — Расширяемая система middleware для аутентификации, логирования, CORS и т.д.
  • Устойчивость к сбоям — Встроенный middleware восстановления предотвращает падение сервера из-за паник
  • Валидация JSON — Автоматическое связывание и валидация JSON запросов/ответов
  • Группировка маршрутов — Организация связанных маршрутов и применение общих middleware
  • Управление ошибками — Централизованная обработка ошибок и логирование
  • Встроенный рендеринг — Поддержка JSON, XML, HTML-шаблонов и многого другого
  • Расширяемый — Большая экосистема сторонних middleware и плагинов

Начало работы

Предварительные требования

  • Версия Go: Gin требует Go версии 1.25 или выше
  • Базовые знания Go: Знакомство с синтаксисом Go и управлением пакетами будет полезным

Установка

Благодаря поддержке модулей Go, просто импортируйте Gin в свой код, и Go автоматически загрузит его при сборке:

import "github.com/gin-gonic/gin"

Ваше первое приложение на Gin

Вот полный пример, демонстрирующий простоту Gin:

package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// Create a Gin router with default middleware (logger and recovery)
r := gin.Default()
// Define a simple GET endpoint
r.GET("/ping", func(c *gin.Context) {
// Return JSON response
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
// Start server on port 8080 (default)
// Server will listen on 0.0.0.0:8080 (localhost:8080 on Windows)
r.Run()
}

Запуск приложения:

  1. Сохраните приведённый выше код как main.go

  2. Запустите приложение:

    Окно терминала
    go run main.go
  3. Откройте браузер и перейдите по адресу http://localhost:8080/ping

  4. Вы должны увидеть: {"message":"pong"}

Что демонстрирует этот пример:

  • Создание маршрутизатора Gin с middleware по умолчанию
  • Определение HTTP-эндпоинтов с простыми функциями-обработчиками
  • Возврат JSON-ответов
  • Запуск HTTP-сервера

Следующие шаги

После запуска вашего первого приложения на Gin изучите эти ресурсы, чтобы узнать больше:

Учебные ресурсы

  • Руководство быстрого старта Gin — Подробное руководство с примерами API и конфигурациями сборки
  • Репозиторий примеров — Готовые к запуску примеры, демонстрирующие различные сценарии использования Gin:
    • Разработка REST API
    • Аутентификация и middleware
    • Загрузка и скачивание файлов
    • WebSocket-соединения
    • Рендеринг шаблонов

Официальные руководства

Экосистема middleware

Gin обладает богатой экосистемой middleware для типичных задач веб-разработки. Исследуйте middleware от сообщества:

  • gin-contrib — Официальная коллекция middleware, включающая:

    • Аутентификация (JWT, Basic Auth, Sessions)
    • CORS, ограничение частоты запросов, сжатие
    • Логирование, метрики, трейсинг
    • Раздача статических файлов, шаблонизаторы
  • gin-gonic/contrib — Дополнительные middleware от сообщества