mrserver

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
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

type RequestParserBool interface {
	FilterNullableBool(r *http.Request, key string) *bool
}

RequestParserBool - парсер данных запроса для преобразования их в *bool.

type RequestParserDateTime added in v0.12.0

type RequestParserDateTime interface {
	FilterDateTime(r *http.Request, key string) time.Time
}

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

type RequestParserParamFunc func(r *http.Request, key string) string

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 - устанавливает код ответа.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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