Николай Тузов Golang Пишем REST API сервис на Go - УЛЬТИМАТИВНЫЙ гайд
🎯 Загружено автоматически через бота:
🚫 Оригинал видео:
📺 Данное видео является собственностью канала Николай Тузов — Golang. Оно представлено в нашем сообществе исключительно в информационных, научных, образовательных или культурных целях. Наше сообщество не утверждает никаких прав на данное видео. Пожалуйста, поддержите автора, посетив его оригинальный канал: @nikolay_tuzov.
✉️ Если у вас есть претензии к авторским правам на данное видео, пожалуйста, свяжитесь с нами по почте support@, и мы немедленно удалим его.
📃 Оригинальное описание:
Пишем полноценный REST API сервис URL Shortener - это будет не игрушечный проект, а полностью готовый к использованию:
- выберем для него актуальный http-роутер: go-chi/chi
- Позаботимся о логах: slog
- Напишем тесты - unit-тесты, тесты хэндлеров и функциональные
- Настроим автоматический деплой через GitHub Actions, напишем для этого workflow
- и др.
Облачный сервер, который я использовал:
Репозиторий проекта:
Другие мои ролики, дополняющие текущий:
Интерфейсы по месту использования:
Моки и их генерация:
Использование SQLite в Go:
✍Текстовый вариант гайда:
Буду очень благодарен за вашу поддержку и там ❤
----
👾 - мой канал в Telegram-канал.
Пишу в нём много интересного: гайды, которых нет на YouTube, интересные мысли про разработку, новости и анонсы всех моих активностей и др.
👀 GoLang Digest: - мои регулярные подборки интересных материалов по Go.
🗣️ Наше сообщество GopherClub: zsSZ63wEJDs3NGVi
Лучшее русскоязычное Go-сообщество с очень приятной атмосферой, без токсиков. Вежливо и терпеливо помогаем новичкам, конструктивно дискутируем с профессионалами и т.п.
Здесь также присутствуют все звезды Go-сообщества и представители интересных компаний 😄
❤️ Если у вас есть желание поддержать развитие канала:
Секретный телеграм-канал:
- В рублях: 1UPXV_DGnG1mODJi
- В евро: hedI8LevYTc5MDM6
Boosty:
Patreon:
----
Тайм-коды:
00:00 Вступление
01:28 Почему мой Telegram-канал очень важен
03:05 Про папку cmd
03:46 План работ и описание используемых библиотек
07:46 Конфигурация приложения и работа с конфигами - CleanEnv
21:34 Настройка логгера - slog
30:25 Пишем Storage - БД / хранилище данных сервиса - SQLite
43:56 SaveURL() - пишем метод Storage для сохранения URLов
50:01 GetURL() - метод Storage для получения URLов
51:40 DeleteURL() - упражнение для самостоятельной работы
52:29 Создаём роутер - Chi
53:27 Middleware для роутера - что это?
54:30 Подключаем Middleware: RequestID и RealIP
56:19 Middleware для логирования запросов
01:02:43 Middleware: Recover и URLFormat - удобный парсинг URL-параметров
01:04:20 Pretty Logger - крутые красивые логи для локальной разработки
01:08:35 Handler: Save - обработчик запросов на сохранение URL
01:35:09 Создание и запуск HTTP сервера
01:38:08 Пишем тест для хэндлера Save
01:52:13 Функциональные тесты - что это такое, и чем они лучше?
01:53:37 Handler: Redirect - редиректим пользователя на сохранённый URL
02:00:23 Handler: Delete - упражнение для самостоятельной работы
02:01:37 Авторизация - ограничение прав доступа к некоторым хэндлерам
02:07:03 Авторизация: как её протестировать с помощью Postman
02:08:06 Пишем тест для хэндлера Redirect
02:13:18 Функциональные тесты - тестируем приложение как черную коробку
02:28:23 Настраиваем деплой проекта на удалённый сервер
02:28:46 Покупаем сервер у Selectel
02:36:00 GitHub Actions: настройка автоматического деплоя проекта
02:37:38 GitHub Actions: Пишем Worflow для деплоя
02:47:27 systemd: настройка автоматического запуска сервиса
02:48:58 Запускаем и проверяем деплой через наш Workflow
02:50:32 GitHub Secrets: хранение приватной информации для деплоя
02:52:44 Успешный деплой через наш Workflow
02:53:18 Тестируем наш сервис на удалённом сервере
02:55:21 Заключение
#golang #ntuzov
1 view
2
0
3 months ago 00:23:34 3
[Николай Тузов — Golang] Генерация и использование моков в Go / Mockery
3 months ago 03:44:51 7
[Николай Тузов — Golang] Пишем gRPC сервис на Go - Сервис авторизации / УЛЬТИМАТИВНЫЙ гайд
3 months ago 00:19:13 13
[Николай Тузов — Golang] Пробуем дженерики Go на практике
3 months ago 00:14:48 13
[Николай Тузов — Golang] Почему интерфейсы лучше размещать в месте использования - GoLang best practices
3 months ago 00:12:00 1
Пульс (новости видеоигр) № 13 {Страна Игр, Gameland, 2007 год}
3 months ago 00:45:11 1
Нина ВОЛЬНАЯ, “Начни сначала“ (1995). Русский шансон. Блатняк.
3 months ago 00:02:12 609
Социальный рынок заработал во Владивостоке
3 months ago 00:12:42 1
Пульс (новости видеоигр) № 12 {Страна Игр, Gameland, 2007 год}
3 months ago 01:45:15 2
Бубновый валет (Бриллиантовый Джек) (1967, ФРГ, США) драма, криминал.
3 months ago 00:03:13 262
Цены на арбузы во Владивостоке. Как выбрать вкусный, без риска для пищеварения
3 months ago 00:11:02 2
Пульс (новости видеоигр) № 11 {Страна Игр, Gameland, 2007 год}
3 months ago 00:04:21 1
Николай Носков - Исповедь/ не осуждай меня, Господь...(HD720p)
3 months ago 01:12:55 1
АЛЕКСАНДР ЧИРКИН, “НАШЕ ПОСЛЕДНЕЕ ЛЕТО“ (2000). Русский шансон. ВНИМАНИЕ: 18+
3 months ago 02:26:28 256
Николай I. Последний рыцарь | Курс Владимира Мединского | XIX век
3 months ago 00:12:52 1
Пульс (новости видеоигр) № 10 {Страна Игр, Gameland, 2007 год}
4 months ago 00:09:22 1
Пульс (новости видеоигр) № 09 {Страна Игр, Gameland, 2007 год}
4 months ago 01:19:46 5
Разбор резюме для Golang разработчиков / Даниил Подольский и Артём Рыбин
4 months ago 00:10:32 1
Пульс (новости видеоигр) № 08 {Страна Игр, Gameland, 2007 год}
4 months ago 00:19:38 1
Пульс (новости видеоигр) № 07 {Страна Игр, Gameland, 2007 год}
4 months ago 00:39:00 1
Юрий Куклачев. С улыбкой доброй (1980)
4 months ago 01:45:15 1
Бубновый валет (Бриллиантовый Джек) (1967, ФРГ, США) драма, криминал, впервые на youtube
4 months ago 00:10:09 1
Пульс (новости видеоигр) № 06 {Страна Игр, Gameland, 2007 год}
4 months ago 00:39:44 1
БОРИС БЕРГ, “ЗАГРАНИЦА“ (1989). Русский шансон.
5 months ago 00:12:44 1
Пульс (новости видеоигр) № 05 {Страна Игр, Gameland, 2007 год}