Documentation ¶
Index ¶
- Constants
- func MiddlewareGeneral(tr *mrlang.Translator, ...) func(next http.Handler) http.Handler
- func MiddlewareHandlerAdapter(s ErrorResponseSender) func(next HttpHandlerFunc) http.HandlerFunc
- func MiddlewareHandlerCheckAccess(handlerName string, access mrperms.AccessRightsFactory, ...) func(next HttpHandlerFunc) HttpHandlerFunc
- func MiddlewareHandlerIdempotency(provider mridempotency.Provider, sender ResponseSender) func(next HttpHandlerFunc) HttpHandlerFunc
- func MiddlewareRecoverHandler(isDebug bool, fatalFunc http.HandlerFunc) func(next http.Handler) http.Handler
- func TraceRequest(l mrlog.Logger, start time.Time, sr *StatRequestReader, sw *StatResponseWriter)
- type CacheableResponseWriter
- type ErrorResponseSender
- type ErrorStatusGetter
- type FileResponseSender
- type HttpController
- type HttpErrorStatusGetter
- type HttpHandler
- type HttpHandlerFunc
- type HttpRouter
- type RequestDecoder
- type RequestParserBool
- type RequestParserDateTime
- type RequestParserFile
- type RequestParserFloat64
- type RequestParserImage
- type RequestParserInt64
- type RequestParserItemStatus
- type RequestParserListPager
- type RequestParserListSorter
- type RequestParserParamFunc
- type RequestParserString
- type RequestParserUUID
- type RequestParserUint64
- type RequestParserValidate
- type ResponseEncoder
- type ResponseSender
- type StatRequestReader
- type StatResponseWriter
Constants ¶
const (
VarRestOfURL = "{{restOfUrl}}" // VarRestOfURL - переменная остатка пути
)
Variables ¶
This section is empty.
Functions ¶
func MiddlewareGeneral ¶ added in v0.13.0
func MiddlewareGeneral( tr *mrlang.Translator, observeRequestFunc func(l mrlog.Logger, start time.Time, sr *StatRequestReader, sw *StatResponseWriter), ) func(next http.Handler) http.Handler
MiddlewareGeneral - промежуточный обработчик, который устанавливает в контекст requestId, language, logger. А также другие параметры, которые используются в статистике запросов.
func MiddlewareHandlerAdapter ¶ added in v0.16.0
func MiddlewareHandlerAdapter(s ErrorResponseSender) func(next HttpHandlerFunc) http.HandlerFunc
MiddlewareHandlerAdapter - переходник с HttpHandlerFunc на http.HandlerFunc.
func MiddlewareHandlerCheckAccess ¶ added in v0.16.0
func MiddlewareHandlerCheckAccess( handlerName string, access mrperms.AccessRightsFactory, privilege, permission string, ) func(next HttpHandlerFunc) HttpHandlerFunc
MiddlewareHandlerCheckAccess - промежуточный обработчик проверки доступа к секции и конечному обработчику.
func MiddlewareHandlerIdempotency ¶ added in v0.16.0
func MiddlewareHandlerIdempotency(provider mridempotency.Provider, sender ResponseSender) func(next HttpHandlerFunc) HttpHandlerFunc
MiddlewareHandlerIdempotency - промежуточный обработчик для организации идемпотентных запросов.
func MiddlewareRecoverHandler ¶ added in v0.17.0
func MiddlewareRecoverHandler(isDebug bool, fatalFunc http.HandlerFunc) func(next http.Handler) http.Handler
MiddlewareRecoverHandler - промежуточный обработчик для перехвата panic.
func TraceRequest ¶ added in v0.25.0
func TraceRequest(l mrlog.Logger, start time.Time, sr *StatRequestReader, sw *StatResponseWriter)
TraceRequest - функция трассировки http запроса.
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
type ErrorStatusGetter interface {
ErrorStatus(errorType mrcore.AnalyzedErrorType, err error) int
}
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 HttpErrorStatusGetter ¶ added in v0.18.0
type HttpErrorStatusGetter struct {
// contains filtered or unexported fields
}
HttpErrorStatusGetter - only for: 401, 403, 404, 418, 422, 5XX.
func NewHttpErrorStatusGetter ¶ added in v0.18.0
func NewHttpErrorStatusGetter(unexpectedStatus int) *HttpErrorStatusGetter
NewHttpErrorStatusGetter - создаёт объект HttpErrorStatusGetter.
func (*HttpErrorStatusGetter) ErrorStatus ¶ added in v0.18.0
func (g *HttpErrorStatusGetter) ErrorStatus(errorType mrcore.AnalyzedErrorType, err error) int
ErrorStatus - возвращает 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 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 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 mrview.ListSorter) mrtype.SortParams
}
RequestParserListSorter - парсер данных запроса для преобразования их в mrtype.SortParams.
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 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 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 - отправляет ответ с данными сформированные сервером.
type StatRequestReader ¶ added in v0.25.0
type StatRequestReader struct {
// contains filtered or unexported fields
}
StatRequestReader - псевдо декоратор http.Request для сбора статистики (кол-во прочитанных байт) и возможности логирования считанных данных.
func NewStatRequestReader ¶ added in v0.25.0
func NewStatRequestReader(r *http.Request, bufferSize int) *StatRequestReader
NewStatRequestReader - создаёт объект StatRequestReader. WARNING: the Body of the original http.Request can be replaced.
func (*StatRequestReader) Content ¶ added in v0.25.0
func (r *StatRequestReader) Content() []byte
Content - возвращает копию прочитанных данных.
func (*StatRequestReader) HasContent ¶ added in v0.25.0
func (r *StatRequestReader) HasContent() bool
HasContent - имеется ли у запроса тело.
func (*StatRequestReader) Request ¶ added in v0.25.0
func (r *StatRequestReader) Request() *http.Request
Request - возвращает оригинальный запрос.
func (*StatRequestReader) Size ¶ added in v0.25.0
func (r *StatRequestReader) Size() int
Size - возвращает размер считанных данных (bytes).
type StatResponseWriter ¶ added in v0.13.0
type StatResponseWriter struct { http.ResponseWriter // contains filtered or unexported fields }
StatResponseWriter - декоратор http.ResponseWriter для сбора статистики (статуса, кол-во записанных байт) и возможности логирования записанных данных.
func NewStatResponseWriter ¶ added in v0.13.0
func NewStatResponseWriter(w http.ResponseWriter, bufferSize int) *StatResponseWriter
NewStatResponseWriter - создаёт объект StatResponseWriter.
func (*StatResponseWriter) Content ¶ added in v0.25.0
func (w *StatResponseWriter) Content() []byte
Content - возвращает копию переданных данных.
func (*StatResponseWriter) Size ¶ added in v0.25.0
func (w *StatResponseWriter) Size() int
Size - возвращает размер переданных данных (bytes).
func (*StatResponseWriter) StatusCode ¶ added in v0.17.0
func (w *StatResponseWriter) StatusCode() int
StatusCode - возвращает текущий код ответа.
func (*StatResponseWriter) Write ¶ added in v0.13.0
func (w *StatResponseWriter) Write(buf []byte) (int, error)
Write - записывает переданные данные, подсчитывая их размер в байтах.
func (*StatResponseWriter) WriteHeader ¶ added in v0.13.0
func (w *StatResponseWriter) WriteHeader(statusCode int)
WriteHeader - устанавливает код ответа.