Сниппеты

Golang — использование rate limiter в коде

Rate limiting — ограничение скорости запросов в определенной системе. К примеру вы можете поставить ограничения на ваш веб сервер — не более 10 запросов в секунду. Возможно создание ограничения только для определенного клиента или типа машины. В Golang добавление rate limit…
Read more

Golang — функция вывода user IP

В случае использования вашего приложения через load balancer или через различные прокси вида Cloudflare задача вывода клиентского IP адреса заключается в правильной выборке header. От X-Real-Ip до CF_CONNECTING_IP или же X-Original-Forwarded-For. Для этого я написал простую функцию по выборке IP адреса:

Алгоритм…
Read more

Golang — Вывод POST response в fmt.Println

Сниппет для вывода запроса при отладке:

 

GitHub API — полезные примеры curl запросов с releases API

Очередная подборка полезных curl запросов для работы с GitHub API: Получить объект release с выбранным tag_name:

Получить uploadUrl для загрузки нового asset в данный release объект:

Удаление asset из release:

Для работы bash снипетов необходимо установить расширение…
Read more

Golang: FileServer для go-chi

Пример работы файлового сервера для go-chi:

До начала работы нужно задать root — корневую папку для работы файлового сервера. Все запросы начинающиеся на /* будут идти на заданный файловый сервер. Возможно также задать только определенный роут, допустим /static/*

Сниппет: Отправка POST json в Golang

Сниппет для POST отправки JSON string:

 

Golang — поднятие тест сервера при unit тестах

При помощи данного сниппета мы можем зарегистрировать нужные нам http роуты для теста и запустить в отдельной go-рутине минимальный веб сервер. Данная техника полезна при тестировании различных HTTP запросов без вовлечения внешних ресурсов. Тем самым мы можем проверить наш…
Read more

Получение обновленного kubeconfig в DigitalOcean

Доступ к Kubernetes в DigitalOcean лимитирован одной неделей, получается каждую неделю нужно получать новый пароль доступа к кластеру. Скачать обновленный kubeconfig можно через консоль в DigitalOcean либо можно воспользоваться командой ниже:

Для работы требуется действующий DigitalOcean токен, который можно…
Read more

Golang — использование envconfig для environment variables

Для работы с переменными окружения в Golang без использования библиотеки envconfig просто не обойтись:

Библиотека также поддерживает default значения, required флаги, custom декодеры и многое многое другое.

Golang sqlmock db tests — SELECT тесты