server

package
v4.6.0 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2025 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// Errors Справочник ошибок.
	Errors = func() *Error { return errSingleton }
)

Functions

This section is empty.

Types

type Error

type Error struct {
	dic.Errors

	// ServerByIdNotFound Конфигурация сервера с идентификатором ... не найдена.
	ServerByIdNotFound dic.IError

	// ServersAddedNotEqualLaunched Добавлено ... серверов, запущено ... серверов.
	ServersAddedNotEqualLaunched dic.IError

	// ModulePanicException Выполнение модуля ... прервано паникой: ...
	ModulePanicException dic.IError

	// BeforeExitWithError Функция Before() завершилась с ошибкой: ...
	BeforeExitWithError dic.IError

	// ServerByIdAlreadyStarted Сервер с идентификатором ... уже запущен.
	ServerByIdAlreadyStarted dic.IError

	// ServerByIdNotStarted Сервер с идентификатором ... не был запущен.
	ServerByIdNotStarted dic.IError
}

type Essence

type Essence interface {
	// Debug Присвоение нового значения режима отладки.
	Debug(debug bool) Essence
}

Essence Служебный публичный интерфейс.

type Interface

type Interface interface {
	// Gist Интерфейс служебных методов.
	Gist() Essence

	// Web Интерфейс веб сервера.
	Web() InterfaceWeb

	// Start Запуск всех зарегистрированных серверов.
	// Если не зарегистрирован ни один сервер, функция возвращает ошибку.
	Start() (err error)

	// Stop Остановка всех зарегистрированных серверов.
	// Если не зарегистрирован ни один сервер, функция возвращает ошибку.
	Stop() (err error)

	// Errors Справочник ошибок.
	Errors() *Error
}

Interface Интерфейс пакета.

func New

func New(logger kitTypes.Logger) Interface

New Конструктор объекта сущности пакета, возвращается интерфейс пакета.

type InterfaceHandlerFunc

type InterfaceHandlerFunc interface {

	// InternalServerErrorGet Получение функции для обработки внутренней ошибки ВЕБ сервера.
	InternalServerErrorGet() (ret http.HandlerFunc)

	// InternalServerErrorSet Установка пользовательской функции для обработки внутренней ошибки ВЕБ сервера.
	InternalServerErrorSet(fn http.HandlerFunc) InterfaceHandlerFunc
}

InterfaceHandlerFunc Интерфейс библиотеки ВЕБ функций Handler и HandlerFunc.

type InterfaceMiddleware

type InterfaceMiddleware interface {

	// IpHandler Загрузка IP адреса клиента в контекст.
	IpHandler() (ret func(http.Handler) http.Handler)

	// IpGetFromContext Извлечение объекта IP адреса клиента из контекста HTTP запроса.
	// Возвращается nil - когда http.Handler IP адреса не был подключен в "промежуточный слой".
	IpGetFromContext(rq *http.Request) net.IP

	// LogHandler Запись в журнал запросов к ВЕБ серверу.
	LogHandler() (ret func(http.Handler) http.Handler)

	// RecoverHandler Обработчик восстановления после паники в ВЕБ сервере.
	RecoverHandler() (ret func(http.Handler) http.Handler)

	// WebServerControlHandler Обработчик установки в контекст запросов ВЕБ сервера, объекта контроля за ВЕБ сервером.
	WebServerControlHandler(ctl *kitTypesServer.WebServerControl) (ret func(http.Handler) http.Handler)

	// WebServerControlGetFromContext Извлечение объекта контроля за ВЕБ сервером из контекста HTTP запроса.
	WebServerControlGetFromContext(rq *http.Request) (ret *kitTypesServer.WebServerControl, err error)

	// RequestShadowInfoHandler Загрузка объекта информации о запросе и всех данных переданных в запросе в контекст.
	RequestShadowInfoHandler() (ret func(http.Handler) http.Handler)

	// RequestShadowInfoGetFromContext Извлечение объекта информации о запросе и всех данных переданных в запросе
	// из контекста HTTP запроса.
	// Возвращается nil, если объект информации не был найден в контексте HTTP запроса.
	RequestShadowInfoGetFromContext(rq *http.Request) (ret *kitTypesServer.RequestShadowInfo)

	// BasicAuthHandler Простая web авторизация запросов с использованием логина и пароля.
	BasicAuthHandler(cfg kitTypesServer.BasicAuthConfiguration) (ret func(http.Handler) http.Handler)

	// BasicAuthGetFromContext Извлечение имени пользователя из контекста проверки авторизации через простую авторизацию.
	BasicAuthGetFromContext(rq *http.Request) (ret string)
}

InterfaceMiddleware Интерфейс библиотеки ВЕБ функций "промежуточного слоя".

type InterfaceWeb

type InterfaceWeb interface {
	// Add Добавление конфигурации веб сервера. Функцию можно вызывать многократно, для добавления
	// нескольких веб серверов. Серверы не должны пересекаться по занимаемому IP и порту или другим монопольно
	// выделяемым ресурсам.
	// Возвращается объект добавленного веб сервера.
	Add(cfg *kitTypesServer.WebConfiguration) (ret *kitTypesServer.Server)

	// Reg Регистрация ресурсов сервера.
	Reg(res kitTypesServer.WebResource)

	// Lib Библиотека ВЕБ функций.
	Lib() InterfaceWebLib

	// Error Интерфейс ошибок ВЕБ сервера.
	Error() InterfaceWebError

	// IsStarted Функция вернёт булево значение "истина", если ВЕБ сервер уже запущен.
	IsStarted(serverID string) (ret bool)

	// Start Запуск ВЕБ сервера с указанным идентификатором.
	Start(serverID string) (err error)

	// Stop Остановка ВЕБ сервера с указанным идентификатором.
	Stop(serverID string) (err error)
}

InterfaceWeb Интерфейс веб сервера.

type InterfaceWebError

type InterfaceWebError interface {
	// Reset Сброс всех установленных ошибок.
	Reset()

	// InternalServerError Установка и получение значения ошибки "Внутренняя ошибка сервера".
	InternalServerError(err error) error

	// MethodNotAllowed Установка и получение значения ошибки "Метод не разрешён".
	MethodNotAllowed(err error) error
}

InterfaceWebError Интерфейс ошибок ВЕБ сервера.

type InterfaceWebLib

type InterfaceWebLib interface {

	// Handler Интерфейс библиотеки ВЕБ функций Handler и HandlerFunc.
	Handler() InterfaceHandlerFunc

	// Middleware Интерфейс библиотеки ВЕБ функций "промежуточного слоя" для роутинга на базе библиотеки chi.
	Middleware() InterfaceMiddleware
}

InterfaceWebLib Интерфейс библиотеки функций ВЕБ сервера.

type Record

type Record struct {
	Address  net.IP        // IP адрес клиента.
	Code     int           // Код ответа.
	Method   dic.IMethod   // Метод запроса.
	Size     uint64        // Размер ответа в байтах.
	Path     string        // Запрашиваемый путь.
	LeadTime time.Duration // Время выполнения запроса.
}

Record Структура собираемых данных для логирования.

Jump to

Keyboard shortcuts

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