0Pricing
Go Academy · Урок

Маршрутизатор Gin и группы маршрутов

Настройка движка, групп и параметров пути

«Маршрутизатор Gin и группы маршрутов» — бесплатный урок Go Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Go Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Go Academy содержит 4 уроков всего.

Что такое Gin?

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

Установка и базовая настройка

Импортируйте Gin и создайте движок:

go get github.com/gin-gonic/gin

package main

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "pong"})
    })
    r.Run(":8080")
}

gin.Default и gin.New

gin.Default() включает промежуточное ПО Logger и Recovery. gin.New() создаёт движок без промежуточного ПО — используйте его, если хотите полностью управлять промежуточным ПО самостоятельно.

Методы маршрутов

Зарегистрируйте маршруты для методов HTTP: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD и Any:

r.GET("/users", listUsers)
r.POST("/users", createUser)
r.PUT("/users/:id", updateUser)
r.DELETE("/users/:id", deleteUser)

Параметры пути

Извлекайте параметры пути с помощью c.Param("name"):

r.GET("/users/:id", func(c *gin.Context) {
    id := c.Param("id")
    c.JSON(200, gin.H{"id": id})
})

Параметры запроса

Читайте параметры запроса с помощью c.Query и c.DefaultQuery:

page := c.DefaultQuery("page", "1")
limit := c.Query("limit") // "" if absent

Группы маршрутов

Объединяйте связанные маршруты под общим префиксом с помощью r.Group. Промежуточное ПО, применённое к группе, влияет на все входящие в неё маршруты:

api := r.Group("/api/v1")
{
    api.GET("/users", listUsers)
    api.POST("/users", createUser)
    api.PUT("/users/:id", updateUser)
}

Вложенные группы

Группы можно вкладывать друг в друга для более точной организации:

admin := r.Group("/admin")
admin.Use(AdminAuth())
{
    admin.GET("/stats", getStats)
    admin.DELETE("/users/:id", deleteUser)
}

Маршрут не найден или метод не разрешён

Корректно обрабатывайте ошибки 404 и 405 с помощью r.NoRoute и r.NoMethod:

r.NoRoute(func(c *gin.Context) {
    c.JSON(404, gin.H{"error": "not found"})
})

Статические файлы

Раздавайте статические файлы из каталога:

r.Static("/static", "./public")
r.StaticFile("/favicon.ico", "./favicon.ico")

Движок как http.Handler

*gin.Engine в Gin реализует http.Handler, поэтому его можно использовать с собственным http.Server для настройки времени ожидания:

srv := &http.Server{Addr: ":8080", Handler: r, ReadTimeout: 5*time.Second}
srv.ListenAndServe()

Быстрая проверка

В чём преимущество использования групп маршрутов в Gin?

Повторение: маршрутизатор и группы Gin

Ключевые моменты:

  • gin.Default() включает Logger и Recovery; используйте gin.New() для собственной настройки
  • c.Param — для параметров пути, c.Query — для параметров запроса
  • r.Group("/prefix") — для общего префикса и промежуточного ПО
  • Gin реализует http.Handler — используйте его с собственным http.Server

Часто задаваемые вопросы

Урок «Маршрутизатор Gin и группы маршрутов» бесплатный?

Да — полный текст урока «Маршрутизатор Gin и группы маршрутов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Go Academy, подпишись на CoddyKit PRO. Курс Go Academy содержит 4 уроков всего.

Чему я научусь в уроке «Маршрутизатор Gin и группы маршрутов»?

Настройка движка, групп и параметров пути Ты практикуешь Go Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Go Academy?

Предыдущий опыт не требуется. Go Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Маршрутизатор Gin и группы маршрутов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Go Academy?

Да. Каждый урок Go Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Маршрутизатор Gin и группы маршрутов
  2. Привязка и проверка запросов
  3. Вспомогательные средства ответов и коды состояния
  4. Промежуточные обработчики Gin: аутентификация и журналирование
← Назад к Go Academy