sdk-go

module
v0.0.44 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2022 License: MIT

README

Go SDK

В этом пакете собрано все, что может быть использовано в нескольких проектах.

С одной стороны, пакет навязывает использование некоторых принципов, с другой стороны, эти принципы не так уж плохи.

Главный принцип - использование proto. Это достаточно гибкое решение, так позволяет описать API, но при этом позволяет оставить поддержку JSON.

Документация доступна по адресу: https://godoc.customapp.tech/pkg/github.com/custom-app/sdk-go/ .

Development

  1. Установить godoc
go install golang.org/x/tools/cmd/godoc@latest

или

go get golang.org/x/tools/cmd/godoc
  1. Запустить локальный сервер
godoc -goroot=$HOME/go/src -http=:6060
  1. Перейти по ссылке http://localhost:6060/pkg/github.com/custom-app/sdk-go/

Ключевые концепты

Для понимания этого SDK надо знать некоторые концепции/паттерны

Provider

Provider - паттерн работы с Third Party API(сторонние API) . подробное описание .

Вкратце суть паттерна в том, что мы определяем интерфейс с несколькими методами и далее пишем несколько реализаций.

Как правило, используется mock-реализация(для тестов) и реализация API-клиента(для реальной работы). Однако, если некие задачи могут быть решены с помощью разных сторонних API, реализаций может быть больше двух.

В провайдерах данного SDK также предусмотрен провайдер по умолчанию. Суть в том, что в пакете лежит глобальная приватная переменная, имеющая тип интерфейс провайдера. В пакете имеется метод изменения провайдера по умолчанию и методы, дублирующие методы из интерфейса, вызывающие эти самые методы у провайдера по умолчанию.

Directories

Path Synopsis
Package auth - пакет с общими ошибками и структурами для работы авторизации Здесь собраны разные реализации авторизации.
Package auth - пакет с общими ошибками и структурами для работы авторизации Здесь собраны разные реализации авторизации.
basic
Package basic - пакет с реализацией авторизации по логин/паролю.
Package basic - пакет с реализацией авторизации по логин/паролю.
basic/basicpg
Package basicpg содержит реализацию basic auth провайдера с использованием базы данных postgresql.
Package basicpg содержит реализацию basic auth провайдера с использованием базы данных postgresql.
jwt
Package jwt - реализация jwt с возможностью нескольких сессий.
Package jwt - реализация jwt с возможностью нескольких сессий.
jwt/jwtpg
Package jwtpg содержит реализацию jwt провайдера с одним единовременным токеном с использованием базы данных postgresql.
Package jwtpg содержит реализацию jwt провайдера с одним единовременным токеном с использованием базы данных postgresql.
db
pg
Package pg - пакет для изменения API работы с PostgreSQL.
Package pg - пакет для изменения API работы с PostgreSQL.
Package logger - пакет для логирования.
Package logger - пакет для логирования.
providers
static
Package static - провайдер работы со статическими файлами.
Package static - провайдер работы со статическими файлами.
static/empty
Package empty - тестовая реализация провайдера работы со статическими файлами.
Package empty - тестовая реализация провайдера работы со статическими файлами.
static/fs
Package fs - реализация провайдера работы со статическими файлами с помощью файловой системы.
Package fs - реализация провайдера работы со статическими файлами с помощью файловой системы.
static/s3
Package s3 - реализация провайдера работы со статическими файлами с помощью S3-совместимых хранилищ.
Package s3 - реализация провайдера работы со статическими файлами с помощью S3-совместимых хранилищ.
static/util
Package util - вспомогательные типы и функции для работы со статическими файлами
Package util - вспомогательные типы и функции для работы со статическими файлами
service
apiclient
Package apiclient - пакет API клиента для использования в сервисах (для возможности вызова service to service)
Package apiclient - пакет API клиента для использования в сервисах (для возможности вызова service to service)
combinedservice
Package combinedservice - пакет для комбинированного http и WebSocket сервера
Package combinedservice - пакет для комбинированного http и WebSocket сервера
httpservice
Package httpservice - пакет для инициализации типового http-сервера
Package httpservice - пакет для инициализации типового http-сервера
workerpool/workerpoolhttp
Package workerpoolhttp - реализация очереди http-запросов с обработкой переполнения
Package workerpoolhttp - реализация очереди http-запросов с обработкой переполнения
workerpool/workerpoolpg
Package workerpoolpg - очереди обработки бд запросов
Package workerpoolpg - очереди обработки бд запросов
workerpool/workerpoolws
Package workerpoolws - реализация обработчиков ws-сообщений из очереди
Package workerpoolws - реализация обработчиков ws-сообщений из очереди
wsservice
Package wsservice - пакет для инициализации типового WebSocket-сервера
Package wsservice - пакет для инициализации типового WebSocket-сервера
wsservice/conn
Package conn - пакет работы с WebSocket соединениями.
Package conn - пакет работы с WebSocket соединениями.
wsservice/opts
Package opts - пакет с опциями Websocket соединений
Package opts - пакет с опциями Websocket соединений
wsservice/pool
Package pool - пакет с реализаций пула публичных и авторизованных соединений
Package pool - пакет с реализаций пула публичных и авторизованных соединений
Package structs содержит в себе объявления типов, использующихся везде в этом SDK
Package structs содержит в себе объявления типов, использующихся везде в этом SDK
testutil
container
Package container - вспомогательный пакет для создания тестовой базы данных в контейнере.
Package container - вспомогательный пакет для создания тестовой базы данных в контейнере.
util
consts
Package consts - полезные константы
Package consts - полезные константы
locker
Package locker - система блокировки с блокировкой по списку чисел.
Package locker - система блокировки с блокировкой по списку чисел.
time
Package time - используется для возможности замены функции получения текущего времени.
Package time - используется для возможности замены функции получения текущего времени.

Jump to

Keyboard shortcuts

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