Модуль 7.3: Архитектура и Веб/API
Архитектура проекта: слои
Разбираемся со слоями api/service/repository, разделением ответственности и типовыми раскладками Go-проекта.
Пакеты и зависимости
Как организовать код по пакетам в Go, понять границы видимости и уверенно работать с go mod и go sum.
Стиль, линтеры и код-ревью
gofmt, go vet, golangci-lint — автоматизируем качество кода. Как давать и получать ревью в Go-проекте.
Сериализация: JSON/YAML/XML
encoding/json в Go: структурные теги, Marshal/Unmarshal, кастомные типы, парсинг конфигов из YAML.
HTTP-сервер
net/http, современный ServeMux с методами в паттернах (Go 1.22+), обработчики и правильный запуск сервера.
REST API
Проектирование REST: ресурсный подход, правильные методы и коды ответов, структура URL, версионирование.
Middleware, логирование, валидация
Middleware-цепочки в Go: логирование запросов, валидация входных данных, передача данных через context.
Аутентификация и авторизация
JWT в Go: создание токенов, middleware проверки, refresh-токены, OAuth-флоу. Мост: на фронте слал токен — теперь проверяешь серверно.
Практика: REST API бронирования
Сборная практика модуля: строим REST API для «Слота» — слоты, создание и отмена брони, мои брони, слои, middleware, JWT.