go-webcore

module
v0.20.1 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2024 License: Apache-2.0

README

Описание GoWebCore v0.20.1

Этот репозиторий содержит описание библиотеки GoWebCore.

Статус библиотеки

Библиотека находится в стадии разработки.

Описание библиотеки

Библиотека с базовой функциональностью для разработки web сервисов, в которую входят:

  • общие интерфейсы, такие как logger, router, validator и другие, которые могут быть реализованы уже в конкретных проектах;
  • адаптеры логгеров: стандартного и rs/zerolog;
  • адаптер стандартного http сервера;
  • адаптеры http роутеров:
    • go-chi/chi/v5;
    • julienschmidt/httprouter;
  • адаптер cors (rs/cors);
  • адаптер валидатора (go-playground/v10);
  • адаптер для отправки ошибок (sentry);
  • реализация метрик в mrprometheus.ObserveRequest;
  • планировщик задач;
  • работа с пользовательскими разрешениями и привилегиями (ролевая модель);
  • разграничение доступа к модулям из различных API;
  • часто используемые программные, системные и пользовательские ошибки, которые возникают в разных слоях программы;
  • пакеты с часто используемыми функциями: генерация токенов, преобразование IP и т.д.;
  • парсеры для некоторых типов данных, которые поступают из http запросов;
  • парсеры для работы с файлами и изображениями;

Подключение библиотеки к проекту

go get -u github.com/mondegor/go-webcore@v0.20.1

Установка библиотеки для её локальной разработки

  • Выбрать рабочую директорию, где должна быть расположена библиотека
  • mkdir go-webcore && cd go-webcore // создать и перейти в директорию проекта
  • git clone git@github.com:mondegor/go-webcore.git .
  • cp .env.dist .env
Консольные команды используемые при разработке библиотеки

Перед запуском консольных скриптов сервиса необходимо скачать и установить утилиту Mrcmd.
Инструкция по её установке находится здесь

  • mrcmd go help - выводит список всех доступных go команд (docker версия);
  • mrcmd go-dev help // выводит список всех доступных go-dev команд (локальная версия);
  • mrcmd go-dev fmt // исправляет форматирование кода (gofumpt -l -w -extra ./)
  • mrcmd go-dev goimports-fix // исправление imports, если это требуется (goimports -d -local ${GO_DEV_LOCAL_PACKAGE} ./)
  • mrcmd go-dev check // статический анализ кода библиотеки (линтеры: govet, staticcheck, errcheck)
  • mrcmd go-dev test // запуск тестов библиотеки
  • mrcmd golangci-lint check // запуск линтеров для проверки кода (на основе .golangci.yaml)
  • mrcmd plantuml build-all // генерирует файлы изображений из .puml подробнее

Jump to

Keyboard shortcuts

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