This tutorial illustrates how you can build a REST API backed by PostgreSQL in Golang, using Gorilla Mux for routing. The tutorial will employ test-driven development and will explain how you can continuously test against a database during development.
Golang Tutorial Goals
By the end of this tutorial, you will:
- Become familiar with Gorilla Mux, and
- Learn how to test your application against a Continuous Integration (CI) database.
This tutorial assumes:
- Basic familiarity with Go and PostgreSQL, and
- That you have to work Golang and PostgreSQL installations.
- You can use Docker to run a test database easily.
You’ll find the complete code for the demo at this repository.
Introduction to the Golang Application
Before we dive into the details, let’s take a brief look at the sample application we will be building as part of this tutorial.
What Will the Go Application Do?
The application will be a simple REST API server that will expose endpoints to allow accessing and manipulating ‘products’. The operations that our endpoint will allow include:
- Creating a new product,
- Updating an existing product,
- Deleting an existing product,
- Fetching an existing product, and
- Fetching a list of products.