Введение
Gin — это веб-фреймворк, написанный на Go (Golang). Он предоставляет API в стиле Martini с гораздо лучшей производительностью — до 40 раз быстрее благодаря httprouter. Если вам нужны производительность и хорошая продуктивность, вам понравится Gin.
В этом разделе мы расскажем, что такое Gin, какие проблемы он решает и как он может помочь вашему проекту.
Или, если вы готовы использовать Gin в своём проекте, перейдите к Быстрому старту.
Возможности
Заголовок раздела «Возможности»Быстрый
Заголовок раздела «Быстрый»Маршрутизация на основе radix-дерева, малый расход памяти. Без рефлексии. Предсказуемая производительность API.
Поддержка middleware
Заголовок раздела «Поддержка middleware»Входящий HTTP-запрос может обрабатываться цепочкой middleware и финальным действием. Например: логирование, авторизация, GZIP и, наконец, сохранение сообщения в БД.
Устойчивость к сбоям
Заголовок раздела «Устойчивость к сбоям»Gin может перехватить panic, возникшую во время HTTP-запроса, и восстановить работу. Таким образом, ваш сервер будет всегда доступен. Например, можно также отправить отчёт о panic в Sentry!
Валидация JSON
Заголовок раздела «Валидация JSON»Gin может разбирать и валидировать JSON запроса — например, проверять наличие обязательных значений.
Группировка маршрутов
Заголовок раздела «Группировка маршрутов»Организуйте маршруты лучше. С авторизацией и без, разные версии API… Кроме того, группы могут быть вложены неограниченно без снижения производительности.
Управление ошибками
Заголовок раздела «Управление ошибками»Gin предоставляет удобный способ сбора всех ошибок, возникших во время HTTP-запроса. В итоге middleware может записать их в лог-файл, в базу данных или отправить по сети.
Встроенный рендеринг
Заголовок раздела «Встроенный рендеринг»Gin предоставляет простой API для рендеринга JSON, XML и HTML.
Расширяемый
Заголовок раздела «Расширяемый»Создать новый middleware очень просто — просто посмотрите примеры кода.
Gin v1. Стабильная версия
Заголовок раздела «Gin v1. Стабильная версия»- Маршрутизатор без аллокаций.
- По-прежнему самый быстрый HTTP-маршрутизатор и фреймворк. От маршрутизации до записи.
- Полный набор модульных тестов.
- Проверен в бою.
- API заморожен, новые релизы не сломают ваш код.