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



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

Книга «Архитектура Современных Веб-Приложений»:
http://www.zhashkevych.com/modern-web-architecture?utm_source=youtube&utm_medium=description&utm_campaign=go-rest-api

Книга «Язык Go Для Начинающих»
https://zhashkevych.com/go-for-beginners

Телеграм-канал: https://t.me/zhashkevychdev
Профиль на GitHub: https://github.com/zhashkevych
Консультации: https://zhashkevych.com/consulting

Подписывайся на соц. сети:
Instagram: https://www.instagram.com/zhashkevych/
LinkedIn: https://www.linkedin.com/in/zhashkevych/
Medium: https://medium.com/@zhashkevych

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

Исходники:
https://github.com/zhashkevych/todo-app

#golang #уроки #restapi

Поставьте оценку!
[Всего: 0 Рейтинг: 0]
16 комментариев
  1. Боже спасибо! СПАСИБО ЗА ТО ЧТО ТЫ ПОЯВИЛСЯ НА YOUTUBE!!!!

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

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

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

  5. Спасибо за труд!

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

  7. С удовольствием посмотрел курс. Давно пишу на Go, и тоже пришел к подобной организации проекта для API.
    К сожалению, к курсу есть замечание. Любой проект, как на фундаменте, строится на обрабатываемых данных. И тут есть проблема.
    Не понятно, зачем тут две связи многие ко многим. Если в случае пользователи — листы можно эту связь чуть — чуть доработать и придать ей смысл, то в случае листы элементы листов нет никакого смысла в связи многие ко многим.
    Я бы предложил следующую структуру БД — в связку пользователи — листы добавить тип связи "владелец", "редактор" или "наблюдатель" с соответствующим эндпоинтом API, позволяющим владельцу листа добавлять пользователей с нужными правами.
    Так же стоит убрать суррогатный ключ — столбец id и в виде первичного ключа использовать составной уникальный индекс user_id + list_id
    Связь же между листом и элементом листа — классическая "один ко многим". Ибо связь "многие ко многим" с логической точки зрения тут явно излишняя.
    Я вижу структуру так —
    http://www.plantuml.com/plantuml/uml/dL4zQyCm4DtrAsvi2ruAMKe8MGiPqzbSeqijAf-CxjmIalxtvboCqiI3oQgdz_7khKKnQzz6Hwn13_0cb0ME3k09WeSN2AomN7uGKqOblrgTeQeQSCQMpZ—CEyQp0_FYyNZyDuBvJ_i1kfGv3jbNpSepJNtnuqfjicdUXD4PoRHGpUH1C2Jx7BeD2GkOQQyNfNQcLunYDRZfplTZUKJ6-izfKZ8u6cFVLJOOnIwYBS9_5blpU7kKvZQlts7qzhAurgbpst3KjoIc7p1JDWDad0wLLKwNkgxik84M7hDO9QHt9hOzsty1G00
    С учетом хорошо продуманной структуры проекта, по моим прикидкам переработка может занять пару часов.

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

  9. Это лучшее, продолжай !!!

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

  11. Отличный материал, жду продолжение)

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

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

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

  15. жду вторую часть!

Написать отзыв