Documentation
¶
Index ¶
- Constants
- func MiddlewareHandlerAdapter(errSender ErrorResponseSender) func(next HttpHandlerFunc) http.HandlerFunc
- func MiddlewareHandlerCheckAccess(logger mrlog.Logger, handlerName, privilege, permission string, ...) func(next HttpHandlerFunc) HttpHandlerFunc
- func MiddlewareHandlerCheckAccessToken(logger mrlog.Logger, handlerName string) func(next HttpHandlerFunc) HttpHandlerFunc
- func MiddlewareHandlerIdempotency(logger mrlog.Logger, provider mridempotency.Provider, sender ResponseSender) func(next HttpHandlerFunc) HttpHandlerFunc
- func MiddlewareObserver(logger mrlog.Logger, observer RequestStat) func(next http.Handler) http.Handler
- func MiddlewareRecoverHandler(logger mrlog.Logger, isDebug bool, fatalFunc http.HandlerFunc) func(next http.Handler) http.Handler
- func MiddlewareRequestID(logger mrlog.Logger, traceManager traceManager) func(next http.Handler) http.Handler
- type CacheableResponseWriter
- type ErrorResponseSender
- type ErrorStatusGetter
- type FileResponseSender
- type HttpController
- type HttpHandler
- type HttpHandlerFunc
- type HttpRouter
- type RequestContainer
- type RequestDecoder
- type RequestParserBool
- type RequestParserClientIP
- type RequestParserDateTime
- type RequestParserFile
- type RequestParserFloat64
- type RequestParserImage
- type RequestParserInt64
- type RequestParserItemStatus
- type RequestParserListPager
- type RequestParserListSorter
- type RequestParserLocale
- type RequestParserParamFunc
- type RequestParserString
- type RequestParserUUID
- type RequestParserUint64
- type RequestParserUser
- type RequestParserValidate
- type RequestStat
- type ResponseEncoder
- type ResponseSender
Constants ¶
const ( // PrivilegePublic - привилегия для всех. PrivilegePublic = "public" // PermissionAnyUser - разрешение для любого пользователя. PermissionAnyUser = "any-user" // PermissionGuestOnly - разрешение только для гостя. PermissionGuestOnly = "guest-only" )
const (
// VarRestOfURL - переменная остатка пути.
VarRestOfURL = "{{restOfUrl}}"
)
Variables ¶
This section is empty.
Functions ¶
func MiddlewareHandlerAdapter ¶ added in v0.16.0
func MiddlewareHandlerAdapter(errSender ErrorResponseSender) func(next HttpHandlerFunc) http.HandlerFunc
MiddlewareHandlerAdapter - переходник с HttpHandlerFunc на http.HandlerFunc.
func MiddlewareHandlerCheckAccess ¶ added in v0.16.0
func MiddlewareHandlerCheckAccess( logger mrlog.Logger, handlerName, privilege, permission string, userProvider mraccess.MemberProvider, userGroups mraccess.RightsGetter, ) func(next HttpHandlerFunc) HttpHandlerFunc
MiddlewareHandlerCheckAccess - промежуточный обработчик проверки доступа к секции и конечному обработчику.
func MiddlewareHandlerCheckAccessToken ¶ added in v0.29.0
func MiddlewareHandlerCheckAccessToken(logger mrlog.Logger, handlerName string) func(next HttpHandlerFunc) HttpHandlerFunc
MiddlewareHandlerCheckAccessToken - промежуточный обработчик запрещает доступ к обработчику авторизованному пользователю.
func MiddlewareHandlerIdempotency ¶ added in v0.16.0
func MiddlewareHandlerIdempotency(logger mrlog.Logger, provider mridempotency.Provider, sender ResponseSender) func(next HttpHandlerFunc) HttpHandlerFunc
MiddlewareHandlerIdempotency - промежуточный обработчик для организации идемпотентных запросов.
func MiddlewareObserver ¶ added in v0.29.0
func MiddlewareObserver( logger mrlog.Logger, observer RequestStat, ) func(next http.Handler) http.Handler
MiddlewareObserver - промежуточный обработчик, который собирает статистику запросов.
Types ¶
type CacheableResponseWriter ¶ added in v0.14.0
type CacheableResponseWriter struct {
http.ResponseWriter
// contains filtered or unexported fields
}
CacheableResponseWriter - comment struct.
func NewCacheableResponseWriter ¶ added in v0.14.0
func NewCacheableResponseWriter(w http.ResponseWriter) *CacheableResponseWriter
NewCacheableResponseWriter - создаёт объект CacheableResponseWriter.
func (*CacheableResponseWriter) Content ¶ added in v0.25.0
func (w *CacheableResponseWriter) Content() []byte
Content - возвращает копию переданных данных.
func (*CacheableResponseWriter) StatusCode ¶ added in v0.14.0
func (w *CacheableResponseWriter) StatusCode() int
StatusCode - возвращает текущий код ответа.
func (*CacheableResponseWriter) Write ¶ added in v0.14.0
func (w *CacheableResponseWriter) Write(buf []byte) (int, error)
Write - записывает переданные данные.
func (*CacheableResponseWriter) WriteHeader ¶ added in v0.14.0
func (w *CacheableResponseWriter) WriteHeader(statusCode int)
WriteHeader - comment method.
type ErrorResponseSender ¶ added in v0.10.0
type ErrorResponseSender interface {
SendError(w http.ResponseWriter, r *http.Request, err error)
}
ErrorResponseSender - отправляет ответ со списком ошибок полученных в результате обработки запроса.
type ErrorStatusGetter ¶ added in v0.18.0
ErrorStatusGetter - возвращает http статус на основе указанной ошибки.
type FileResponseSender ¶ added in v0.10.0
type FileResponseSender interface {
ResponseSender
SendFile(ctx context.Context, w http.ResponseWriter, file mrtype.File) error
SendAttachmentFile(ctx context.Context, w http.ResponseWriter, file mrtype.File) error
}
FileResponseSender - отправляет ответ с данными в виде файла сформированные сервером.
type HttpController ¶ added in v0.10.0
type HttpController interface {
Handlers() []HttpHandler
}
HttpController - http контроллер со списком его обработчиков.
type HttpHandler ¶ added in v0.10.0
type HttpHandler struct {
Method string
URL string
Permission string
Func HttpHandlerFunc
}
HttpHandler - http обработчик, к которому привязаны метод, URL и разрешение контролирующее запуск этого обработчика.
type HttpHandlerFunc ¶ added in v0.10.0
type HttpHandlerFunc func(w http.ResponseWriter, r *http.Request) error
HttpHandlerFunc - изменённый дизайн стандартного HTTP обработчика с возможностью возврата ошибки вместо её обработки в самом обработчике.
type HttpRouter ¶ added in v0.10.0
type HttpRouter interface {
RegisterMiddleware(handlers ...func(next http.Handler) http.Handler)
Register(controllers ...HttpController)
HandlerFunc(method, path string, handler http.HandlerFunc)
ServeHTTP(w http.ResponseWriter, r *http.Request)
}
HttpRouter - роутинг запросов с их регистрацией и запуском.
type RequestContainer ¶ added in v0.29.0
type RequestContainer struct {
// contains filtered or unexported fields
}
RequestContainer - comment struct.
func NewRequestContainer ¶ added in v0.29.0
func NewRequestContainer(list ...RequestStat) *RequestContainer
NewRequestContainer - создаёт объект RequestContainer.
func (*RequestContainer) Emit ¶ added in v0.29.0
func (rs *RequestContainer) Emit(r *http.Request, body []byte, size int, responseBody []byte, responseSize int, duration time.Duration, status int)
Emit - функция трассировки http запроса.
func (*RequestContainer) Enabled ¶ added in v0.29.0
func (rs *RequestContainer) Enabled() bool
Enabled - comment method.
type RequestDecoder ¶ added in v0.10.0
type RequestDecoder interface {
ParseToStruct(ctx context.Context, content io.Reader, structPointer any) error
}
RequestDecoder - преобразователь данных в указанную go структуру.
type RequestParserBool ¶ added in v0.12.0
RequestParserBool - парсер данных запроса для преобразования их в *bool.
type RequestParserClientIP ¶ added in v0.29.0
type RequestParserClientIP interface {
RealIP(r *http.Request) net.IP
DetailedIP(r *http.Request) mrtype.DetailedIP
}
RequestParserClientIP - comment interface.
type RequestParserDateTime ¶ added in v0.12.0
RequestParserDateTime - парсер данных запроса для преобразования их в time.Time.
type RequestParserFile ¶ added in v0.12.0
type RequestParserFile interface {
FormFile(r *http.Request, key string) (mrtype.File, error)
FormFileContent(r *http.Request, key string) (mrtype.FileContent, error)
FormFiles(r *http.Request, key string) ([]mrtype.FileHeader, error)
}
RequestParserFile - парсер данных запроса для преобразования их в файловую структуру.
type RequestParserFloat64 ¶ added in v0.20.3
type RequestParserFloat64 interface {
FilterFloat64(r *http.Request, key string) float64
FilterRangeFloat64(r *http.Request, key string) mrtype.RangeFloat64
}
RequestParserFloat64 - парсер данных запроса для преобразования их во float64.
type RequestParserImage ¶ added in v0.12.0
type RequestParserImage interface {
FormImage(r *http.Request, key string) (mrtype.Image, error)
FormImageContent(r *http.Request, key string) (mrtype.ImageContent, error)
FormImages(r *http.Request, key string) ([]mrtype.ImageHeader, error)
}
RequestParserImage - парсер данных запроса для преобразования их в файловую структуру изображения.
type RequestParserInt64 ¶ added in v0.12.0
type RequestParserInt64 interface {
FilterInt64(r *http.Request, key string) int64
FilterRangeInt64(r *http.Request, key string) mrtype.RangeInt64
FilterInt64List(r *http.Request, key string) []int64
}
RequestParserInt64 - парсер данных запроса для преобразования их в int64.
type RequestParserItemStatus ¶ added in v0.10.0
type RequestParserItemStatus interface {
FilterStatusList(r *http.Request, key string) []mrenum.ItemStatus
}
RequestParserItemStatus - парсер данных запроса для преобразования их в []mrenum.ItemStatus.
type RequestParserListPager ¶ added in v0.14.0
type RequestParserListPager interface {
PageParams(r *http.Request) mrtype.PageParams
}
RequestParserListPager - парсер данных запроса для преобразования их в mrtype.PageParams.
type RequestParserListSorter ¶ added in v0.14.0
type RequestParserListSorter interface {
SortParams(r *http.Request, sorter mrtype.ListSorter) mrtype.SortParams
}
RequestParserListSorter - парсер данных запроса для преобразования их в mrtype.SortParams.
type RequestParserLocale ¶ added in v0.29.0
type RequestParserLocale interface {
Language(r *http.Request) string
Localizer(r *http.Request) mrcore.Localizer
}
RequestParserLocale - comment interface.
type RequestParserParamFunc ¶ added in v0.12.0
RequestParserParamFunc - функция для парсинга URL для извлечения из него параметров.
type RequestParserString ¶ added in v0.12.0
type RequestParserString interface {
PathParamString(r *http.Request, name string) string
RawParamString(r *http.Request, key string) *string // returns nil if the param not found
FilterString(r *http.Request, key string) string
}
RequestParserString - парсер данных запроса для преобразования их в string.
type RequestParserUUID ¶ added in v0.10.0
type RequestParserUUID interface {
PathParamUUID(r *http.Request, name string) uuid.UUID
FilterUUID(r *http.Request, key string) uuid.UUID
}
RequestParserUUID - парсер данных запроса для преобразования их в uuid.UUID.
type RequestParserUint64 ¶ added in v0.25.0
type RequestParserUint64 interface {
PathParamUint64(r *http.Request, name string) uint64
FilterUint64(r *http.Request, key string) uint64
FilterUint64List(r *http.Request, key string) []uint64
}
RequestParserUint64 - парсер данных запроса для преобразования их в mrtype.Uint64.
type RequestParserUser ¶ added in v0.29.0
type RequestParserUser interface {
UserID(r *http.Request) uuid.UUID
UserAndGroup(r *http.Request) (userID uuid.UUID, group string)
}
RequestParserUser - comment interface.
type RequestParserValidate ¶ added in v0.10.0
type RequestParserValidate interface {
Validate(r *http.Request, structPointer any) error
ValidateContent(ctx context.Context, content []byte, structPointer any) error
}
RequestParserValidate - парсер данных запроса для преобразования их в go структуру.
type RequestStat ¶ added in v0.29.0
type RequestStat interface {
Enabled() bool
Emit(r *http.Request, body []byte, size int, responseBody []byte, responseSize int, duration time.Duration, status int)
}
RequestStat - comment interface.
type ResponseEncoder ¶ added in v0.10.0
type ResponseEncoder interface {
ContentType() string
ContentTypeProblem() string
Marshal(structure any) ([]byte, error)
}
ResponseEncoder - формирует ответ сервера из go структуры в необходимом формате.
type ResponseSender ¶ added in v0.10.0
type ResponseSender interface {
Send(w http.ResponseWriter, status int, structure any) error
SendBytes(w http.ResponseWriter, status int, body []byte) error
SendNoContent(w http.ResponseWriter) error
}
ResponseSender - отправляет ответ с данными сформированные сервером.