ginRouter

package
v0.0.0-...-38e7ffe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SetInternalErrorHandler = internal.ErrorHandlerFunc

SetInternalErrorHandler меняет функцию по-умолчанию для обработки ошибок в middleware текущего модуля на пользовательскую. Необходима для того чтобы ошибки возникающие в самом пакете gin-router форматировались в нужном стандарте конечного проекта.

Functions

func New

func New(formatMre gin.HandlerFunc) fx.Option

New возвращает опцию Uber FX, которая инициализирует модуль HTTP-роутера на основе Gin.

Для корректной работы модуля необходимо, чтобы в родительском FX-приложении были предоставлены следующие зависимости:

  • *ut.UniversalTranslator: универсальный переводчик для локализации сообщений (например, ошибок валидации). Если приложение не использует DefaultFormatErrorFunc, то для удовлетворения зависимости достаточно предоставить NUL UniversalTranslator: func() *ut.UniversalTranslator { return nil }
  • *zap.Logger и *zap.SugaredLogger: экземпляры логгера для структурированного логирования.
  • types.GetRouterConfig: интерфейс, возвращающий конфигурацию роутера (*types.Config). Должен быть реализован пользователем.

Модуль автоматически:

  • Регистрирует сервис маршрутизации (реализует router.IRouterService, routes.RouterWithModule, routes.IGetHTTPHandler).
  • Настраивает middleware для обработки паник (восстановление контекста).
  • Подключает поддержку локализации ошибок через AddErrorTranslationToRouter (если используется DefaultFormatErrorFunc).
  • При необходимости устанавливает пользовательский middleware форматирования ответов (если передан formatMre).

Пример использования:

app := fx.New(
    fx.Provide(
        zap.New,
        config.New, // предоставляет types.GetRouterConfig
        func() *ut.UniversalTranslator { return uniTrans }, // глобальный переводчик
    ),
    ginRouter.New(customFormatError),
)

Возвращает: FX-модуль, готовый к интеграции в основное приложение.

Types

type HandlerRouter

type HandlerRouter struct {
	mock.Mock
	// contains filtered or unexported fields
}

HandlerRouter — реализация тестового роутера на основе Gin.

Используется для unit- и integration-тестирования маршрутов. Позволяет эмулировать HTTP-запросы и проверять ответы без запуска сервера.

func (*HandlerRouter) AddActionFunc

func (*HandlerRouter) AddHandlerFunc

func (hr *HandlerRouter) AddHandlerFunc(handlerFunc gin.HandlerFunc) routes.RouteFull

AddHandlerFunc добавляет обработчик в тестовый роутер.

func (*HandlerRouter) AddRole

func (*HandlerRouter) Auth

func (hr *HandlerRouter) Auth(bool) routes.RouteFull

Auth устанавливает флаг необходимости аутентификации. Реализован для совместимости.

func (*HandlerRouter) DisableTx

func (hr *HandlerRouter) DisableTx() routes.RouteFull

DisableTx отключает транзакционную обработку. Реализован для совместимости.

func (*HandlerRouter) GET

GET выполняет HTTP GET-запрос к зарегистрированному маршруту.

Параметры:

  • r: маршрут с обработчиком.
  • header: заголовки запроса (может быть nil).

Возвращает:

  • ResponseRecorder: содержит ответ сервера.
  • error: ошибка создания запроса, если возникла.

func (*HandlerRouter) GetContext

func (hr *HandlerRouter) GetContext() *gin.Context

GetContext возвращает текущий контекст Gin.

func (*HandlerRouter) GetEngine

func (hr *HandlerRouter) GetEngine() *gin.Engine

GetEngine возвращает движок Gin.

func (*HandlerRouter) GetRecorder

func (hr *HandlerRouter) GetRecorder() *httptest.ResponseRecorder

GetRecorder возвращает рекордер ответов.

func (*HandlerRouter) GetRecoveryToContextFu

func (*HandlerRouter) GetRecoveryToContextFu() func(
	c *gin.Context,
	errTmp any,
	fmtResponseFunc types.FmtResponseFunc,
)

GetRecoveryToContextFu возвращает функцию восстановления после паники, используемую в контексте.

func (*HandlerRouter) HandlerFunc

func (hr *HandlerRouter) HandlerFunc() gin.HandlerFunc

HandlerFunc возвращает обработчик, сохранённый в моке.

Возвращает нулевой обработчик, если значение не установлено или имеет неверный тип.

func (*HandlerRouter) POST

func (hr *HandlerRouter) POST(r routes.Route, header http.Header, body []byte) (*httptest.ResponseRecorder, error)

POST выполняет HTTP POST-запрос к зарегистрированному маршруту.

Параметры:

  • r: маршрут с обработчиком.
  • header: заголовки запроса (может быть nil).
  • body: тело запроса.

Возвращает:

  • ResponseRecorder: содержит ответ сервера.
  • error: ошибка создания запроса, если возникла.

func (*HandlerRouter) PUT

func (hr *HandlerRouter) PUT(r routes.Route, header http.Header, body []byte) (*httptest.ResponseRecorder, error)

PUT выполняет HTTP PUT-запрос к зарегистрированному маршруту.

Параметры:

  • r: маршрут с обработчиком.
  • header: заголовки запроса (может быть nil).
  • body: тело запроса.

Возвращает:

  • ResponseRecorder: содержит ответ сервера.
  • error: ошибка создания запроса, если возникла.

func (*HandlerRouter) SetCategory

func (hr *HandlerRouter) SetCategory(string) routes.RouteFull

SetCategory устанавливает категорию маршрута. Реализован для совместимости с интерфейсом.

func (*HandlerRouter) SetModule

func (hr *HandlerRouter) SetModule(string) routes.RouteFull

SetModule устанавливает модуль маршрута. Реализован для совместимости с интерфейсом.

func (*HandlerRouter) SetRoles

func (*HandlerRouter) SetRoles([]string) routes.RouteFull

func (*HandlerRouter) SetTitle

func (hr *HandlerRouter) SetTitle(string) routes.RouteFull

SetTitle устанавливает заголовок маршрута. Реализован для совместимости.

func (*HandlerRouter) Use

Use добавляет middleware в цепочку обработки.

type ITestRouter

type ITestRouter interface {
	routes.RouterWithModule
	// GetRecoveryToContextFu возвращает функцию восстановления после паники, используемую в контексте теста.
	GetRecoveryToContextFu() func(
		c *gin.Context,
		errTmp any,
		fmtResponseFunc types.FmtResponseFunc,
	)
	// GetContext возвращает текущий контекст Gin.
	GetContext() *gin.Context
	// GetEngine возвращает движок Gin, используемый в тесте.
	GetEngine() *gin.Engine
	// GetRecorder возвращает рекордер ответов для проверки результатов запросов.
	GetRecorder() *httptest.ResponseRecorder
	// POST выполняет HTTP POST-запрос к указанному маршруту.
	POST(r routes.Route, header http.Header, body []byte) (*httptest.ResponseRecorder, error)
	// PUT выполняет HTTP PUT-запрос к указанному маршруту.
	PUT(r routes.Route, header http.Header, body []byte) (*httptest.ResponseRecorder, error)
	// GET выполняет HTTP GET-запрос к указанному маршруту.
	GET(r routes.Route, header http.Header) (*httptest.ResponseRecorder, error)
}

ITestRouter — интерфейс тестового роутера.

Предоставляет методы для регистрации обработчиков, выполнения HTTP-запросов и доступа к внутренним компонентам Gin для целей тестирования. Наследует функциональность маршрутизации из RouterWithModule.

func NewTestRouter

func NewTestRouter(contextWithFallback bool) ITestRouter

NewTestRouter создаёт новый экземпляр тестового роутера.

Параметр contextWithFallback определяет, использовать ли fallback-контекст в Gin. Возвращает реализацию интерфейса ITestRouter.

Source Files

  • new.go
  • new_test_router.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL