Введение
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 заморожен, новые релизы не сломают ваш код.