Documentation
¶
Index ¶
- Variables
- func New(formatMre gin.HandlerFunc) fx.Option
- type HandlerRouter
- func (*HandlerRouter) AddActionFunc(routes.ActionFunc) routes.RouteFull
- func (hr *HandlerRouter) AddHandlerFunc(handlerFunc gin.HandlerFunc) routes.RouteFull
- func (*HandlerRouter) AddRole(string) routes.RouteFull
- func (hr *HandlerRouter) Auth(bool) routes.RouteFull
- func (hr *HandlerRouter) DisableTx() routes.RouteFull
- func (hr *HandlerRouter) GET(r routes.Route, header http.Header) (*httptest.ResponseRecorder, error)
- func (hr *HandlerRouter) GetContext() *gin.Context
- func (hr *HandlerRouter) GetEngine() *gin.Engine
- func (hr *HandlerRouter) GetRecorder() *httptest.ResponseRecorder
- func (*HandlerRouter) GetRecoveryToContextFu() func(c *gin.Context, errTmp any, fmtResponseFunc types.FmtResponseFunc)
- func (hr *HandlerRouter) HandlerFunc() gin.HandlerFunc
- func (hr *HandlerRouter) POST(r routes.Route, header http.Header, body []byte) (*httptest.ResponseRecorder, error)
- func (hr *HandlerRouter) PUT(r routes.Route, header http.Header, body []byte) (*httptest.ResponseRecorder, error)
- func (hr *HandlerRouter) SetCategory(string) routes.RouteFull
- func (hr *HandlerRouter) SetModule(string) routes.RouteFull
- func (*HandlerRouter) SetRoles([]string) routes.RouteFull
- func (hr *HandlerRouter) SetTitle(string) routes.RouteFull
- func (hr *HandlerRouter) Use(mm gin.HandlerFunc) routes.RouterWithModule
- type ITestRouter
Constants ¶
This section is empty.
Variables ¶
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 ¶
HandlerRouter — реализация тестового роутера на основе Gin.
Используется для unit- и integration-тестирования маршрутов. Позволяет эмулировать HTTP-запросы и проверять ответы без запуска сервера.
func (*HandlerRouter) AddActionFunc ¶
func (*HandlerRouter) AddActionFunc(routes.ActionFunc) routes.RouteFull
func (*HandlerRouter) AddHandlerFunc ¶
func (hr *HandlerRouter) AddHandlerFunc(handlerFunc gin.HandlerFunc) routes.RouteFull
AddHandlerFunc добавляет обработчик в тестовый роутер.
func (*HandlerRouter) AddRole ¶
func (*HandlerRouter) AddRole(string) routes.RouteFull
func (*HandlerRouter) Auth ¶
func (hr *HandlerRouter) Auth(bool) routes.RouteFull
Auth устанавливает флаг необходимости аутентификации. Реализован для совместимости.
func (*HandlerRouter) DisableTx ¶
func (hr *HandlerRouter) DisableTx() routes.RouteFull
DisableTx отключает транзакционную обработку. Реализован для совместимости.
func (*HandlerRouter) GET ¶
func (hr *HandlerRouter) GET(r routes.Route, header http.Header) (*httptest.ResponseRecorder, error)
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 ¶
func (hr *HandlerRouter) Use(mm gin.HandlerFunc) routes.RouterWithModule
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