ans

package
v4.2.3 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2024 License: MIT Imports: 17 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Essence

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

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

type Interface

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

	// NewRestError Создание объекта интерфейса, стандартного REST ответа с ошибкой для кодов ошибок 4xx и 5xx.
	NewRestError(status dic.IStatus, err error) RestErrorInterface

	// RqVar Интерфейс модуля github.com/webnice/kit/module/rqvar. Поиск и загрузка данных из:
	// + контекста HTTP запроса;
	// + заголовков HTTP запроса;
	// + "печенек" HTTP запроса;
	// + параметров HTTP запроса, а именно в URL Request;
	// + путей URN роутинга HTTP запроса;
	// + вызов функции структуры загружаемых данных;
	RqVar() kitModuleRqVar.Interface

	// RqIds Загрузка числовых идентификаторов указанных в path-param под ключём {key} и перечисленных через запятую.
	// В случае возникновения ошибки формируется и отправляется HTTP ответ с кодом 400, содержащий возникшую ошибку.
	RqIds(wr http.ResponseWriter, rq *http.Request, key string) (ret []uint64, err error)

	// RqId Загрузка значения указанного в path-param под ключём {key} и конвертация его в число.
	// В случае возникновения ошибки формируется и отправляется HTTP ответ с кодом 400, содержащий возникшую ошибку.
	RqId(wr http.ResponseWriter, rq *http.Request, key string) (ret uint64, err error)

	// RqBytes Загрузка тела HTTP запроса в виде среза байт и возвращение объекта *bytes.Buffer.
	RqBytes(rq *http.Request) (ret *bytes.Buffer, err error)

	// RqData Выполнение загрузки данных из тела запроса в переменную variable с использованием декодирования
	// данных, выбор кодера осуществляется на основе заголовка запроса Content-Type.
	// Поддерживаются два метода сериализации данных: JSON, XML.
	RqData(rq *http.Request, variable any) (err error)

	// RqLoad Выполнение загрузки и декодирования данных, в случае возникновения ошибки формируется и отправляется HTTP
	// ответ с кодом 400, содержащий возникшую ошибку.
	// Данные загружаются из тела запроса в переменную variable с использованием декодирования данных, выбор кодера
	// осуществляется на основе заголовка запроса Content-Type, поддерживаются два метода сериализации данных: JSON, XML.
	// Ответ с ошибкой сериализуется тем же самым методом сериализации данных, что был в запросе.
	RqLoad(wr http.ResponseWriter, rq *http.Request, variable any) (err error)

	// RqLoadVerify Выполнение загрузки и декодирования данных, в случае возникновения ошибки формируется и
	// отправляется HTTP ответ с кодом 400, содержащий возникшую ошибку.
	// Загруженные данные проверяются библиотекой github.com/go-playground/validator.
	// Данные загружаются из тела запроса в переменную variable с использованием декодирования данных, выбор кодера
	// осуществляется на основе заголовка запроса Content-Type, поддерживаются два метода сериализации данных: JSON, XML.
	// Ответ с ошибкой сериализуется тем же самым методом сериализации данных, что был в запросе.
	RqLoadVerify(wr http.ResponseWriter, rq *http.Request, variable any) (err error)

	// Status Ответ кодом статуса без передачи тела сообщения.
	Status(wr http.ResponseWriter, status dic.IStatus) Interface

	// Ok Ответ кодом 200 "Ok".
	Ok(wr http.ResponseWriter) Interface

	// NoContent Ответ кодом 204 "No Content" без передачи тела сообщения.
	NoContent(wr http.ResponseWriter) Interface

	// Unauthorized Ответ кодом 401 "Unauthorized" без передачи тела сообщения.
	Unauthorized(wr http.ResponseWriter) Interface

	// Forbidden Ответ кодом 403 "Forbidden" без передачи тела сообщения.
	Forbidden(wr http.ResponseWriter) Interface

	// NotFound Ответ кодом 404 "Not Found" без передачи тела сообщения.
	NotFound(wr http.ResponseWriter) Interface

	// BadRequest Ответ на запрос с передачей ошибки запроса и структуры описывающей найденную ошибку.
	BadRequest(wr http.ResponseWriter, data RestErrorInterface) Interface

	// BadRequestBytes Ответ на запрос с передачей данных в исходном виде.
	BadRequestBytes(wr http.ResponseWriter, data []byte) Interface

	// InternalServerError Ответ на запрос с кодом ошибки 500 и структурой описывающей ошибку.
	InternalServerError(wr http.ResponseWriter, err error) Interface

	// Header Установка заголовка передаваемых данных.
	Header(wr http.ResponseWriter, header dic.IHeader, mime dic.IMime) Interface

	// HeaderString Установка заголовка передаваемых данных объектом строка.
	HeaderString(wr http.ResponseWriter, header dic.IHeader, mimeString string) Interface

	// ContentType Установка типа контента передаваемых данных.
	ContentType(wr http.ResponseWriter, mime dic.IMime) Interface

	// ContentTypeString Установка типа контента передаваемых данных объектом строка.
	ContentTypeString(wr http.ResponseWriter, mimeString string) Interface

	// ContentLength Установка заголовка длинны передаваемого контента.
	ContentLength(wr http.ResponseWriter, contentLength uint64) Interface

	// LastModified Установка заголовка с датой и временем изменения контента.
	LastModified(wr http.ResponseWriter, lastModified time.Time) Interface

	// RetryAfter Установка заголовка 'Retry-After' с числом секунд.
	RetryAfter(wr http.ResponseWriter, duration time.Duration) Interface

	// ResponseBytes Ответ с проверкой передачи данных.
	ResponseBytes(wr http.ResponseWriter, status dic.IStatus, data []byte) Interface

	// ResponseString Ответ с проверкой передачи данных.
	ResponseString(wr http.ResponseWriter, status dic.IStatus, data string) Interface

	// Response Ответ с проверкой передачи данных.
	Response(wr http.ResponseWriter, status dic.IStatus, buf *bytes.Buffer) Interface

	// Json Ответ на запрос с сериализацией результата в JSON формат.
	Json(wr http.ResponseWriter, status dic.IStatus, obj any) Interface
}

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

func New

func New(logger kitTypes.Logger) Interface

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

type RestError

type RestError struct {
	Error RestErrorBody `json:"error" xml:"error"`
	// contains filtered or unexported fields
}

RestError Структура стандартного REST ответа с ошибкой с кодами 4xx и 5xx.

func (*RestError) Add

func (reo *RestError) Add(field string, value string, msg string) RestErrorInterface

Add Добавление в массив объектов описания поля и ошибки в нём.

func (*RestError) AddWithKey

func (reo *RestError) AddWithKey(field string, value string, msg string, key string) RestErrorInterface

AddWithKey Добавление в массив объектов описания поля и ошибки в нём.

func (*RestError) AsError

func (reo *RestError) AsError() (err error)

AsError Сводит объект в ошибку и возвращает интерфейс error.

func (*RestError) CodeGet

func (reo *RestError) CodeGet() int

CodeGet Уникальный код ошибки из справочника ошибок.

func (*RestError) CodeSet

func (reo *RestError) CodeSet(code int) RestErrorInterface

CodeSet Уникальный код ошибки из справочника ошибок.

func (*RestError) Field

func (reo *RestError) Field() []RestErrorField

Field Массив объектов с описанием имён полей и ошибок в них.

func (*RestError) I18nKeyGet

func (reo *RestError) I18nKeyGet() string

I18nKeyGet Ключ локализации ошибки.

func (*RestError) I18nKeySet

func (reo *RestError) I18nKeySet(key string) RestErrorInterface

I18nKeySet Ключ локализации ошибки.

func (*RestError) Json

func (reo *RestError) Json(wr http.ResponseWriter)

Json Сериализация в JSON и отправка данных в интерфейс http.ResponseWriter.

func (*RestError) JsonBytes

func (reo *RestError) JsonBytes() (ret *bytes.Buffer, err error)

JsonBytes Сериализация в JSON.

func (*RestError) MessageGet

func (reo *RestError) MessageGet() string

MessageGet Техническое описание ошибки в локализации сервера.

func (*RestError) MessageSet

func (reo *RestError) MessageSet(msg string) RestErrorInterface

MessageSet Техническое описание ошибки в локализации сервера.

type RestErrorBody

type RestErrorBody struct {
	Code    int              `json:"code"    xml:"code"`              // Уникальный код ошибки из справочника ошибок.
	Message string           `json:"message" xml:"message"`           // Техническое описание ошибки в локализации сервера.
	I18nKey string           `json:"i18nKey" xml:"i18nKey,omitempty"` // Ключ локализации ошибки.
	Errors  []RestErrorField `json:"errors"  xml:"errors"`            // Массив объектов с описанием имён полей и ошибок в них.
}

RestErrorBody Общее описание ошибки.

type RestErrorField

type RestErrorField struct {
	Field      string `json:"field"      xml:"field"`             // Название поля.
	FieldValue string `json:"fieldValue" xml:"fieldValue"`        // Полученное значение поля field.
	Message    string `json:"message"    xml:"message"`           // Техническое описание ошибки.
	I18nKey    string `json:"i18nKey"    xml:"i18NKey,omitempty"` // Ключ локализации ошибки.
}

RestErrorField Описание ошибок в полях структуры данных.

type RestErrorInterface

type RestErrorInterface interface {
	// CodeSet Уникальный код ошибки из справочника ошибок.
	CodeSet(code int) RestErrorInterface

	// CodeGet Уникальный код ошибки из справочника ошибок.
	CodeGet() int

	// MessageSet Назначение значения полю message.
	MessageSet(msg string) RestErrorInterface

	// MessageGet Возвращение значения поля message.
	MessageGet() string

	// I18nKeySet Ключ локализации ошибки.
	I18nKeySet(key string) RestErrorInterface

	// I18nKeyGet Ключ локализации ошибки.
	I18nKeyGet() string

	// Field Массив объектов с описанием имён полей и ошибок в них.
	Field() []RestErrorField

	// Add Добавление в массив объектов описания поля и ошибки в нём.
	Add(field string, value string, msg string) RestErrorInterface

	// AddWithKey Добавление в массив объектов описания поля и ошибки в нём.
	AddWithKey(field string, value string, msg string, key string) RestErrorInterface

	// JsonBytes Сериализация в JSON.
	JsonBytes() (ret *bytes.Buffer, err error)

	// Json Сериализация в JSON и отправка данных в интерфейс http.ResponseWriter.
	Json(wr http.ResponseWriter)

	// AsError Сводит объект в ошибку и возвращает интерфейс error.
	AsError() (err error)
}

RestErrorInterface Интерфейс стандартного REST ответа ошибки с кодами 4xx и 5xx.

Jump to

Keyboard shortcuts

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