Summary 

In this chapter, we built a Metro Rail API with the help of a few web frameworks available in Go. The most popular ones are go-restful, Gin Gonic, and revel.go. We have introduced a database layer in this chapter. We chose SQLite3 and tried to write a sample application using the go-sqlite3 library.

We then explored go-restful and looked in detail at how to create routes and handlers. go-restful has the concept of building APIs on top of resources. We explained why go-restful is lightweight and can be used to create low-latency APIs.

Next, we introduced the Gin framework and tried to re-implement the railAPI. Finally, we tried to create another API on the train resource, but this time with the revel.go web framework. Revel is a framework that is similar to Django and Ruby on Rails. It provides scaffolding for most of the server needs such as routing, handlers, and middleware.

The main theme of this chapter is to suggest you use available frameworks for REST API development. Use revel.go when you have an end-to-end web application (templates and UI) in addition to the REST API, use Gin to quickly create REST services, and use go-restful when the performance of the API is critical. 

We also worked with a relational database in the form of SQLite3. In the next chapter, we introduce a popular non-relational database called MongoDB for building an API.