Table of Contents 1
Cover
3
Introduction
What Does This Book Cover?
Reader Support for This Book
4
Getting Started
Installing Go
Choosing an Editor
Installing Protocol Buffer Toolchain
Installing Docker Desktop
Guide to the Book
Go Refresher
Summary
5
CHAPTER 1: Writing Command-Line Applications
Your First Application
Writing Unit Tests
Using the Flag Package
Improving the User Interface
Updating the Unit Tests
Summary
6
CHAPTER 2: Advanced Command-Line Applications
Implementing Sub-commands
Making Your Applications Robust
Summary
7
CHAPTER 3: Writing HTTP Clients
Downloading Data
Deserializing Received Data
Sending Data
Working with Binary Data
Summary
8
CHAPTER 4: Advanced HTTP Clients
Using a Custom HTTP Client
Customizing Your Requests
Implementing Client Middleware
Connection Pooling
Summary
9
CHAPTER 5: Building HTTP Servers
Your First HTTP Server
Setting Up Request Handlers
Testing Your Server
The Request Struct
Attaching Metadata to a Request
Processing Streaming Requests
Streaming Data as Responses
Summary
10
CHAPTER 6: Advanced HTTP Server Applications
The Handler Type
Sharing Data across Handler Functions
Writing Server Middleware
Writing Tests for Complex Server Applications
Summary
11
CHAPTER 7: Production-Ready HTTP Servers
Aborting Request Handling
Server-Wide Time-Outs
Implementing Graceful Shutdown
Securing Communication with TLS
Summary
12
CHAPTER 8: Building RPC Applications with gRPC
gRPC and Protocol Buffers
Writing Your First Service
A Detour into Protobuf Messages
Multiple Services
Error Handling
Summary
13
CHAPTER 9: Advanced gRPC Applications
Streaming Communication
Receiving and Sending Arbitrary Bytes
Implementing Middleware Using Interceptors
Summary
14
CHAPTER 10: Production-Ready gRPC Applications
Securing Communication with TLS
Robustness in Servers
Robustness in Clients