REST based microservices API development in Golang
What you'll learn
- Apply SOLID design principles in Go
- Master the Hexagonal Architecture design and its implementation
- Implement authentication and authorization using JWT access & refresh tokens
- Apply RBAC Authorization to APIs
- Understand how dependency injection works in Go
- Understand and implement the structured logging
- Build microservices API in Go
- Code Refactoring in Go
- Decoupling the domain objects and DTOs
- Working with small steps
- Take the informed decision on choosing various libraries
- Understand the role of multiplexer in HTTP web server
- Encoding structs to JSON or XML
- Understand the routing capabilities of gorilla/mux
- Design your own error library
- State based unit testing
- Unit testing using the mocks
- Student should know basic golang programming concepts like structs, receiver functions and interface
- Student should be comfortable with object oriented programming concepts
In this course, you will learn microservices API development using the Hexagonal Architecture. We will start the development from the scratch. Taking the small steps, we will be building the foundation by continuously improving the design of the application. We will explore how the dependency inversion plays a pivotal role in implementing the Hexagonal architecture.
Later on, we will be building an auth API to manage the Authentication and Authorization of our main application.
By the end of the course, we will learn to unit test various components using state and mocks and will also understand the complexities in testing those components.
Who this course is for:
- Developers who want to take their career to the next level by improving their skills and learning about REST based microservices API development.
- College students currently learning about Golang.
- Experienced developers that have recently started working with Go and want to learn how microservices development is done in golang.
I am a passionate all-round IT consultant with around two decades of experience in IT, I have developed a broad interest in various technologies and specialized in Cloud computing, Continuous Delivery, and DevOps. Having experience with multiple enterprise customers, my passion for the latest technologies, my role as Principal Architect at various projects has allowed me to translate technical and organizational challenges in projects into successful solutions. I have an excellent understanding of agile team methodologies and practices including XP engineering practices.
I have been contributing towards the Design, Coding, Code Optimisation, laying out Testing Strategies and Integration techniques. Gaining and sharing of knowledge is a big drive for me. Over the years I have helped and coached multiple development teams sizing from small startups to enterprise-sized companies. Together we have built great new applications and architectures and we have gained experiences and knowledge. I have an in-depth understanding of design patterns and domain-driven design. I have the knowledge and extensive experience in application integration, distributed application architecture, object-oriented modeling and design.