| Adding Fields |
05. Schema Evolution |
| Annotate the Proto File |
15. gRPC Gateway |
| Authentication Interceptor |
11. Interceptors |
| Automate with a Makefile |
03. Code Generation |
| Bidirectional Streaming |
10. Client & Bidirectional Streaming |
| Binary vs Text |
01. What is Protobuf |
| Calling RPCs |
08. Building a gRPC Client |
| Cancellation |
13. Metadata & Deadlines |
| Chaining Multiple Interceptors |
11. Interceptors |
| Changing Types |
05. Schema Evolution |
| Checking Deadline on the Server |
13. Metadata & Deadlines |
| Checking Errors on the Client |
12. Error Handling in gRPC |
| Client Auth Interceptor |
11. Interceptors |
| Client Implementation |
09. Server Streaming |
| Client Interceptors |
11. Interceptors |
| Client Streaming |
10. Client & Bidirectional Streaming |
| Client: BatchCreateLinks |
10. Client & Bidirectional Streaming |
| Client: SyncClicks |
10. Client & Bidirectional Streaming |
| Complete Client File |
08. Building a gRPC Client |
| Complete Server File |
07. Building a gRPC Server |
| Connecting to the Server |
08. Building a gRPC Client |
| Connection Management |
08. Building a gRPC Client |
| Context and Timeouts |
08. Building a gRPC Client |
| CreateLink |
07. Building a gRPC Server |
| Custom JSON Marshaling |
15. gRPC Gateway |
| Deadline Propagation |
13. Metadata & Deadlines |
| Deadlines |
13. Metadata & Deadlines |
| Default Values |
02. Proto3 Syntax |
| Define the RPC |
09. Server Streaming |
| DeleteLink |
07. Building a gRPC Server |
| Deprecating Fields |
05. Schema Evolution |
| Don't Edit Generated Files |
03. Code Generation |
| Don't Return Raw Go Errors |
12. Error Handling in gRPC |
| Enums |
02. Proto3 Syntax |
| Error Mapping |
15. gRPC Gateway |
| Evolving Enums |
05. Schema Evolution |
| Flow Control |
09. Server Streaming |
| Four Types of RPC |
06. Introduction to gRPC |
| Gateway Startup |
15. gRPC Gateway |
| Generate the Gateway Code |
15. gRPC Gateway |
| Generated Code |
06. Introduction to gRPC |
| Generated Code Recap |
07. Building a gRPC Server |
| Generated File Layout |
03. Code Generation |
| Generated Message Code |
03. Code Generation |
| Generated Stream Interface |
09. Server Streaming |
| Generated Stream Types |
10. Client & Bidirectional Streaming |
| GetLink |
07. Building a gRPC Server |
| Go Module Dependencies |
03. Code Generation |
| gRPC vs REST |
06. Introduction to gRPC |
| Handling Errors |
08. Building a gRPC Client |
| How It Works |
15. gRPC Gateway |
| How Protobuf Works |
01. What is Protobuf |
| How the Wire Format Works |
04. Serialization |
| HTTP/2 |
06. Introduction to gRPC |
| Installing protoc |
01. What is Protobuf |
| Installing protoc Plugins |
03. Code Generation |
| Installing the Gateway Plugin |
15. gRPC Gateway |
| JSON Encoding for Debugging |
04. Serialization |
| Maps |
02. Proto3 Syntax |
| Marshal and Unmarshal |
04. Serialization |
| Metadata |
13. Metadata & Deadlines |
| Nested Messages |
02. Proto3 Syntax |
| Oneof |
02. Proto3 Syntax |
| Practical Workflow |
05. Schema Evolution |
| Project Structure |
08. Building a gRPC Client |
| Proto Definition |
10. Client & Bidirectional Streaming |
| Proto Text Format |
04. Serialization |
| Reading Error Details on the Client |
12. Error Handling in gRPC |
| Reading Metadata on the Server |
13. Metadata & Deadlines |
| Reading Server Metadata on the Client |
13. Metadata & Deadlines |
| Recovery Interceptor |
11. Interceptors |
| Removing Fields |
05. Schema Evolution |
| Renaming Fields |
05. Schema Evolution |
| Repeated Fields |
02. Proto3 Syntax |
| Rich Error Details |
12. Error Handling in gRPC |
| Running BatchCreateLinks |
10. Client & Bidirectional Streaming |
| Running protoc |
03. Code Generation |
| Running SyncClicks |
10. Client & Bidirectional Streaming |
| Running Tests |
14. Testing gRPC Services |
| Running the Client |
08. Building a gRPC Client |
| Running the Server |
07. Building a gRPC Server |
| Scalar Types |
02. Proto3 Syntax |
| Schema as a Contract |
01. What is Protobuf |
| Sending Metadata from the Client |
13. Metadata & Deadlines |
| Sending Metadata from the Server |
13. Metadata & Deadlines |
| Server Implementation |
09. Server Streaming |
| Server Reflection |
07. Building a gRPC Server |
| Server Startup |
07. Building a gRPC Server |
| Server: BatchCreateLinks |
10. Client & Bidirectional Streaming |
| Server: SyncClicks |
10. Client & Bidirectional Streaming |
| Service Definition |
06. Introduction to gRPC |
| Setting a Deadline |
13. Metadata & Deadlines |
| Shortener Project Setup |
01. What is Protobuf |
| Size Comparison |
04. Serialization |
| Status Codes |
12. Error Handling in gRPC |
| Stream Server Interceptor |
11. Interceptors |
| Streaming with Delays |
09. Server Streaming |
| Table-Driven Tests |
14. Testing gRPC Services |
| Test with curl |
15. gRPC Gateway |
| Testing Streaming RPCs |
14. Testing gRPC Services |
| Testing the Full Flow |
14. Testing gRPC Services |
| Testing Unary RPCs |
14. Testing gRPC Services |
| Testing with grpcurl |
09. Server Streaming |
| Testing with Interceptors |
14. Testing gRPC Services |
| The Golden Rule |
05. Schema Evolution |
| The gRPC Stubs |
03. Code Generation |
| The Problem with JSON |
01. What is Protobuf |
| The Server Struct |
07. Building a gRPC Server |
| Timestamps and Well-Known Types |
02. Proto3 Syntax |
| Unary Server Interceptor |
11. Interceptors |
| Validation Helper |
12. Error Handling in gRPC |
| What Makes gRPC Different |
06. Introduction to gRPC |
| When to Use Each Pattern |
10. Client & Bidirectional Streaming |
| When to Use Protobuf |
01. What is Protobuf |
| When to Use Server Streaming |
09. Server Streaming |
| Wrapping Internal Errors |
12. Error Handling in gRPC |
| Writing the Proto File |
03. Code Generation |
| Zero Values Are Not Serialized |
04. Serialization |