🌀 Middleware и RoundTripper в Go: гибкая обработка HTTP-запросов
В Go нет встроенного понятия "middleware", как в других фреймворках — но вы можете легко реализовать его сами, особенно в контексте
🔧 RoundTripper — это интерфейс, который обрабатывает HTTP-запросы на уровне клиента (`http.Client`). Это даёт возможность внедрять логику *до* и *после* отправки запроса.
🧱 Пример: логгер запросов
📦 Использование:
💡 Таким образом, вы можете создавать middleware прямо внутри
• логирование
• кэширование
• модификация заголовков
• retry-логика
• трейсинг
🔗 Подробнее: dev.to/calvinmclean/middleware-and-roundtrippers-in-go-30pa
#golang #httpclient #middleware #webdev #devtools
В Go нет встроенного понятия "middleware", как в других фреймворках — но вы можете легко реализовать его сами, особенно в контексте
http.RoundTripper
.🔧 RoundTripper — это интерфейс, который обрабатывает HTTP-запросы на уровне клиента (`http.Client`). Это даёт возможность внедрять логику *до* и *после* отправки запроса.
🧱 Пример: логгер запросов
type LoggingRoundTripper struct {
rt http.RoundTripper
}
func (l *LoggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
log.Printf("📤 Запрос: %s %s", req.Method, req.URL)
resp, err := l.rt.RoundTrip(req)
if err == nil {
log.Printf("📥 Ответ: %d", resp.StatusCode)
}
return resp, err
}
📦 Использование:
client := &http.Client{
Transport: &LoggingRoundTripper{rt: http.DefaultTransport},
}
💡 Таким образом, вы можете создавать middleware прямо внутри
http.Client
, например:• логирование
• кэширование
• модификация заголовков
• retry-логика
• трейсинг
🔗 Подробнее: dev.to/calvinmclean/middleware-and-roundtrippers-in-go-30pa
#golang #httpclient #middleware #webdev #devtools
👍9🔥4❤2🤬1
♟️ Новая шахматная библиотека на Go — chess v2
Разработчик Brigham Skarda представил chess v2 — лёгкую и мощную библиотеку для работы с шахматами на языке Go.
📦 Что умеет:
• Валидация и исполнение ходов
• Поддержка PGN и FEN
• Расчёт состояния: шах, мат, пат, троекратное повторение
• Работа с произвольных позиций
🔧 Отличия версии v2:
• Переработанный API с акцентом на читаемость и безопасность
• Повышенная производительность
• Улучшенная архитектура — удобна для использования в ИИ, анализаторах партий и игровых движках
🚀 Отличный инструмент для тех, кто пишет:
• шахматные движки
• телеграм-ботов
• шахматные редакторы и визуализаторы
🔗 Статья: https://brighamskarda.com/articles/introducing_chess_v2_a_new_chess_library_in_golang
#golang #chess #opensource #gamedev #библиотекиGo
Разработчик Brigham Skarda представил chess v2 — лёгкую и мощную библиотеку для работы с шахматами на языке Go.
📦 Что умеет:
• Валидация и исполнение ходов
• Поддержка PGN и FEN
• Расчёт состояния: шах, мат, пат, троекратное повторение
• Работа с произвольных позиций
🔧 Отличия версии v2:
• Переработанный API с акцентом на читаемость и безопасность
• Повышенная производительность
• Улучшенная архитектура — удобна для использования в ИИ, анализаторах партий и игровых движках
🚀 Отличный инструмент для тех, кто пишет:
• шахматные движки
• телеграм-ботов
• шахматные редакторы и визуализаторы
🔗 Статья: https://brighamskarda.com/articles/introducing_chess_v2_a_new_chess_library_in_golang
#golang #chess #opensource #gamedev #библиотекиGo
😁7👍5❤2😢1
Forwarded from Golang
🔥 Обширная коллекция практичных сниппетов, примеров и рецептов на Go для создания эффективных, надёжных и масштабируемых приложений.
Идеально для разработчиков, которые хотят:
- писать чистый и читаемый Go-код
- быстро находить решения типовых задач
- изучать лучшие практики и готовые паттерны
📚 Всё — от HTTP-серверов и работы с JSON до многопоточности, базы данных и REST API.
🔗 https://go-cookbook.com
@Golang_google
#golang #go #guide
Идеально для разработчиков, которые хотят:
- писать чистый и читаемый Go-код
- быстро находить решения типовых задач
- изучать лучшие практики и готовые паттерны
📚 Всё — от HTTP-серверов и работы с JSON до многопоточности, базы данных и REST API.
🔗 https://go-cookbook.com
@Golang_google
#golang #go #guide
👍18❤6
Forwarded from Golang
Внутри:
- Минималистичный симулятор горутин и каналов прямо в браузере
- Работает через Go WebAssembly — никакого сервера не требуется
- Наглядно объяснены
select
, fan-in/fan-out, worker pool, таймауты и про- Код можно редактировать на лету
Сохрани в закладки и тренируй мышление «конкурентного» Go-разработчика:
https://concurrency.rocks
#golang
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍5❤4