Book Image

Go Web Development Cookbook

By : Arpit Aggarwal
Book Image

Go Web Development Cookbook

By: Arpit Aggarwal

Overview of this book

Go is an open source programming language that is designed to scale and support concurrency at the language level. This gives you the liberty to write large concurrent web applications with ease. From creating web application to deploying them on Amazon Cloud Services, this book will be your one-stop guide to learn web development in Go. The Go Web Development Cookbook teaches you how to create REST services, write microservices, and deploy Go Docker containers. Whether you are new to programming or a professional developer, this book will help get you up to speed with web development in Go. We will focus on writing modular code in Go; in-depth informative examples build the base, one step at a time. You will learn how to create a server, work with static files, SQL, NoSQL databases, and Beego. You will also learn how to create and secure REST services, and create and deploy Go web application and Go Docker containers on Amazon Cloud Services. By the end of the book, you will be able to apply the skills you've gained in Go to create and explore web applications in any domain.
Table of Contents (13 chapters)

What this book covers

Chapter 1, Creating Your First Server in Go, explains how to write and interact with HTTP and TCP servers, optimize server responses with GZIP compression, and implement routing and logging in a Go web application.

Chapter 2, Working with Templates, Static Files, and HTML Forms, covers how to create HTML templates; serve static resources from the filesystem; create, read, and validate HTML Forms; and implement a simple user authentication for a Go web application.

Chapter 3, Working with Sessions, Error Handling, and Caching in Go, explores implementing HTTP sessions, HTTP cookies, error handling, and caching and managing HTTP sessions using Redis, which is required for a web application deployed across multiple data centers.

Chapter 4, Writing and Consuming RESTful Web Services in Go, explains how to write RESTful web services, version them, and create AngularJS with TypeScript 2, ReactJS, and VueJS clients to consume them.

Chapter 5, Working with SQL and NoSQL Databases, goes through implementing CRUD operations with MySQL and MongoDB databases in a Go web application.

Chapter 6, Writing Microservices in Go Using Micro – a Microservice Toolkit, focuses on writing and working with the Protocol Buffers, using a microservice discovery client such as Consul, writing microservices using Go Micro, and interacting with them through command line and web dashboard, along with implementing the API gateway pattern to access the microservices over the HTTP protocol.

Chapter 7, Working with WebSocket in Go, looks at writing a WebSocket server and its client as well as writing unit tests and debugging them using the GoLand IDE.

Chapter 8, Working with the Go Web Application Framework - Beego, familiarizes setting up the Beego project architecture, writing controllers, views, and filters, implementing caching backed with Redis, and monitoring and deploying the Beego application with Nginx.

Chapter 9, Working with Go and Docker, presents writing Docker images, creating Docker containers, user-defined Docker network, working with Docker Registry, and running a Go web application Docker container linked with another Docker container.

Chapter 10, Securing a Go Web Application, demonstrates creating server certificates and private keys using OpenSSL, moving an HTTP server to HTTPS, securing RESTful APIs with JSON Web Token (JWT), and preventing cross-site request forgery in Go web applications.

Chapter 11, Deploying a Go Web App and Docker Containers to AWS, discusses setting up an EC2 instance, interacting, and running a Go web application and a Go Docker container on it.