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

Введение

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

В этом разделе мы расскажем, что такое Gin, какие проблемы он решает и как он может помочь вашему проекту.

Или, если вы готовы использовать Gin в своём проекте, перейдите к Быстрому старту.

Возможности

Быстрый

Маршрутизация на основе radix-дерева, малый расход памяти. Без рефлексии. Предсказуемая производительность API.

Поддержка middleware

Входящий HTTP-запрос может обрабатываться цепочкой middleware и финальным действием. Например: логирование, авторизация, GZIP и, наконец, сохранение сообщения в БД.

Устойчивость к сбоям

Gin может перехватить panic, возникшую во время HTTP-запроса, и восстановить работу. Таким образом, ваш сервер будет всегда доступен. Например, можно также отправить отчёт о panic в Sentry!

Валидация JSON

Gin может разбирать и валидировать JSON запроса — например, проверять наличие обязательных значений.

Группировка маршрутов

Организуйте маршруты лучше. С авторизацией и без, разные версии API… Кроме того, группы могут быть вложены неограниченно без снижения производительности.

Управление ошибками

Gin предоставляет удобный способ сбора всех ошибок, возникших во время HTTP-запроса. В итоге middleware может записать их в лог-файл, в базу данных или отправить по сети.

Встроенный рендеринг

Gin предоставляет простой API для рендеринга JSON, XML и HTML.

Расширяемый

Создать новый middleware очень просто — просто посмотрите примеры кода.

Gin v1. Стабильная версия

  • Маршрутизатор без аллокаций.
  • По-прежнему самый быстрый HTTP-маршрутизатор и фреймворк. От маршрутизации до записи.
  • Полный набор модульных тестов.
  • Проверен в бою.
  • API заморожен, новые релизы не сломают ваш код.