[REST API на Golang #1] Разработка Web-Приложений на Golang. Знакомство с проектом.

preview_player
Показать описание

Это первая часть из курса, посвященного разработке REST API приложений на языке Golang. В нем будут рассмотрены следующие темы:
- Разработка Веб-Приложений на Go, следуя дизайну REST API.
- Работа с фреймворком gin-gonic/gin.
- Подход Чистой Архитектуры в построении структуры приложения. Техника внедрения зависимости.
- Работа с БД Postgres. Запуск из Docker. Генерация файлов миграций.
- Конфигурация приложения с помощью библиотеки spf13/viper. Работа с переменными окружения.
- Работа с БД, используя библиотеку sqlx.
- Регистрация и аутентификация. Работа с JWT. Middleware.
- Написание SQL запросов.
- Graceful Shutdown

Курс по разработке REST API на Go. В этом уроке разбираем сам проект, концепцию REST API, структуру API приложения и схему базы данных.

Исходники:

#golang #уроки #restapi
Рекомендации по теме
Комментарии
Автор

Спасибо за полноценный курс, очень благодарен тебе, что довел его до логического конца и разобрал все темы, смотрел гошеров и многие из них бросали курс на самом первом видео, тебе отдельный респект и уважуха

palkovnik_vkid
Автор

Боже спасибо! СПАСИБО ЗА ТО ЧТО ТЫ ПОЯВИЛСЯ НА YOUTUBE!!!!

alexandertsapkov
Автор

Тебе надо продолжать делать такие курсы. Супер!

helpc
Автор

Прочитал книгу) перешёл в телеграмм канал) и тут такой подарок) спасибо большое) очень жду и более сложные приложения и темы) приятная музыка и хорошее качество голоса )

LRXAORLOV
Автор

С удовольствием посмотрел курс. Давно пишу на Go, и тоже пришел к подобной организации проекта для API.
К сожалению, к курсу есть замечание. Любой проект, как на фундаменте, строится на обрабатываемых данных. И тут есть проблема.
Не понятно, зачем тут две связи многие ко многим. Если в случае пользователи - листы можно эту связь чуть - чуть доработать и придать ей смысл, то в случае листы элементы листов нет никакого смысла в связи многие ко многим.
Я бы предложил следующую структуру БД - в связку пользователи - листы добавить тип связи "владелец", "редактор" или "наблюдатель" с соответствующим эндпоинтом API, позволяющим владельцу листа добавлять пользователей с нужными правами.
Так же стоит убрать суррогатный ключ - столбец id и в виде первичного ключа использовать составной уникальный индекс user_id + list_id
Связь же между листом и элементом листа - классическая "один ко многим". Ибо связь "многие ко многим" с логической точки зрения тут явно излишняя.
Я вижу структуру так -
С учетом хорошо продуманной структуры проекта, по моим прикидкам переработка может занять пару часов.

АндрейТитишов
Автор

Добрый день, Максим!😉прохожу Ваш курс скажите, пожалуйста, почему не устанавливается Docker хоть с терминала ни с root правами, не на прямую, ни через установщик приложений, может подскажите как его установить, пишет обрыв связи .. версия Ubuntu последняя

ОльгаСок-ну
Автор

А что за сайт на котором ты проектировал бд?

maleriak
Автор

Макс привет! Ты знаком с Нодой? Если да, можешь дать сравнение с Go, бизнес приложения на чем удобнее и быстрее писать?
Я начал изучать Ноду так как знаю JS, но вот думаю, может все таки лучше Go взять, так как в нем можно писать простой синхронный код.
А в однопоточной ноде нужно писать всякие asyns/await и promise. И причем в ноде нужно еще знать какие функции и части инфраструктуры обязательно нужно делать асинхронными + большинство фреймворков приучают писать в стиле big ball of mud.

maksimsergeevich
Автор

Привет, у тебя очень классные курсы за что тебе огромное спасибо!
Может кто-нибудь скинуть хорошую стать по БД или может какой-нибудь курс? Хочу разобраться с отношениями в бд и вообще пониять что и как там работает)

NikitaMamaev
Автор

Ребят скажите пожалуйста, что лучше для api мобильного приложения, php или go?

darikaki
Автор

Are not you making another coding courses again? About deploying, clouds, k8s, ....

doniyorumarov
Автор

Немного критики, gin конечно замечательно, но golang вполне самодостаточен для написания web-приложения без стороннего фреймворка, это гораздо полезней для начинающего, если конечно ты рассчитывешь курс для начинающих разработчиков. И второе, по коду, не вижу валидации данных...

jankatver
Автор

Подскажите пожалуйста. Книга "Архитектура Современных Веб-Приложений" - по ссылке доступна только первая глава. Как получить полный экземпляр книги?

SavenkoRoman
Автор

*для github в ide можно поставить "добавить пустую строку в конец файла" тогда не будет ⛔

typepeak
Автор

Gopher School ушёл, ему появилась полноценная замена!)

eximy
Автор

Зачем этот бит в видео? Ну или уровень громкости голоса д. б. Сильнее

vovs
Автор

ну если сам то написал грех не порекомендовать

ДмитрийГлотов-ьх
Автор

Решил изучить Go по причине того что Python даже Fast API оказалься очень медленным

vb