Learn Go by building a REST API and a Command Line Interface (CLI).
We will also cover:
- Unit testing
- Authentication & Authorization using OAuth2
- CI/CD with Kubernetes, Helm and Flux
Are you ready?
- What are we going to build?
- Prepare the development environment
- Please do a Go tour
- What you will learn about Go (checklist)
- Start the project for the Library
- Add programming/uuid generator function the Library
- Start the project for the API
- Add programming/uuid generator function to the API
- Unit tests in the API using mocks
- GitHub actions running locally
- GitHub actions for the Library
- Running the API using a container
- GitHub actions for the API
- Add programming/jwtdebugger to the library and API
- Add finance/currency-converter to the library
- Add finance/currency-converter to the API
- Change API file structure
- Improve API error handling
- Add structured logs to the API
- Make Gin use structured logs
- Configure Amazon Cognito as an OAuth2 server
- Add authentication to the API
- Add authorization to the API
- Start the project
- Introduction to Cobra
- CLI building blocks: configuration
- CLI building blocks: authentication
- CLI building blocks: IO streams & testing helpers
- Add the configure command to the CLI
- Add the programming/uuid command to the CLI
- CI/CD for the CLI
- Challenge: Add the programming/jwtdebugger command to the CLI
- Challenge: Add the finance/currency-converter command to the CLI
- How to check the test coverage?
- Increase coverage in the Lib
- Increase coverage in the API
- Increase coverage in the CLI
- What's next?