Develop A Production Ready REST API in Go

Course Instructor:
Elliot Forbes

Hey Gophers! My name is Elliot and I'm the creator of TutorialEdge and I've been working with Go systems for roughly 5 years now.

Twitter: @Elliot_f

Course:
Develop A Production Ready REST API in Go

Tags:

golang
REST
HTTP

Welcome Gophers! In this course, we’ll be covering absolutely everything you need in order to get up and running developing Production-ready REST APIs using Go.

Throughout this course, we’ll be looking at how you can build a Comment system for your own sites or projects. We’ll walk through everything from setting up your Go project, all the way through to implementing the API and the tests around the API, and then finally, we’ll finish up by docker-izing our Go app and deploying to Kubernetes.

I’ll be walking you through some of the best practices in terms of structuring your Go app so that it’s easily testable and maintainable. Once, we’ve got a solid foundation, we’ll then introduce a database in the form of Postgres and we’ll look at how we can use gorm in order to communicate to that database and perform migrations for us.

Prerequisites

This course has been designed for people who:

  • Have some familiarity with the Go syntax and understand the syntax.
  • Want to take their Go skills to the next stage and learn how to build production-ready services.

Topics We’ll Cover

Throughout the course, we’ll be covering fundamental topics such as:

  • Project Initialization and Setup
  • Implementing REST HTTP Endpoints with the Gorilla Mux router
  • Working With PostgreSQL
  • Containerization with Docker and docker-compose
  • Continuous Deployment to Kubernetes
  • Proper Structuring of your Go App
  • Using GORM to talk to the Database
  • Proper Testing Strategies
  • Basic Authentication with Middleware

By the end of this course, you should be comfortable building your own Go services from the ground up and ensuring that good engineering practices are being adhered to for these new services.

You’ll have a solid foundation on how Go apps can be structured in such a way that they are extensible and easily tested. You’ll also have exposure to ORMs and interacting with the incredibly popular Postgres database technology.