Из-за периодической блокировки нашего сайта РКН сервисами, просим воспользоваться резервным адресом:
Загрузить через ClipSaver.ruУ нас вы можете посмотреть бесплатно Пишем REST API сервис на Go - УЛЬТИМАТИВНЫЙ гайд или скачать в максимальном доступном качестве, которое было загружено на ютуб. Для скачивания выберите вариант из формы ниже:
Роботам не доступно скачивание файлов. Если вы считаете что это ошибочное сообщение - попробуйте зайти на сайт через браузер google chrome или mozilla firefox. Если сообщение не исчезает - напишите о проблеме в обратную связь. Спасибо.
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса savevideohd.ru
Пишем полноценный REST API сервис URL Shortener - это будет не игрушечный проект, а полностью готовый к использованию: выберем для него актуальный http-роутер: go-chi/chi Позаботимся о логах: slog Напишем тесты - unit-тесты, тесты хэндлеров и функциональные Настроим автоматический деплой через GitHub Actions, напишем для этого workflow и др. Облачный сервер, который я использовал: https://slc.tl/torpo Репозиторий проекта: https://github.com/GolangLessons/url-... Другие мои ролики, дополняющие текущий: Интерфейсы по месту использования: • Почему интерфейсы лучше размещать в м... Моки и их генерация: • Генерация и использование моков в Go ... Использование SQLite в Go: • SQLite в Golang - как использовать, н... ✍Текстовый вариант гайда: https://habr.com/ru/companies/selecte... Буду очень благодарен за вашу поддержку и там ❤ ---- 👾 https://t.me/ntuzov - мой канал в Telegram-канал. Пишу в нём много интересного: гайды, которых нет на YouTube, интересные мысли про разработку, новости и анонсы всех моих активностей и др. 👀 GoLang Digest: https://t.me/golang_digest - мои регулярные подборки интересных материалов по Go. 🗣️ Наше сообщество GopherClub: https://t.me/+zsSZ63wEJDs3NGVi Лучшее русскоязычное Go-сообщество с очень приятной атмосферой, без токсиков. Вежливо и терпеливо помогаем новичкам, конструктивно дискутируем с профессионалами и т.п. Здесь также присутствуют все звезды Go-сообщества и представители интересных компаний 😄 ❤️ Если у вас есть желание поддержать развитие канала: Секретный телеграм-канал: В рублях: https://t.me/+1UPXV_DGnG1mODJi В евро: https://t.me/+hedI8LevYTc5MDM6 Boosty: https://boosty.to/nikolay.tuzov Patreon: / tuzov ---- Тайм-коды: 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