The complete gRPC course 2020 [Protobuf + Golang + Java]
4.3 (44 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
16,388 students enrolled

The complete gRPC course 2020 [Protobuf + Golang + Java]

16,000 enrolled students | Learn to build efficient production-grade APIs for your microservices & mobile applications
4.3 (44 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
16,388 students enrolled
Created by TECH SCHOOL
Last updated 5/2020
English
English
Current price: $13.99 Original price: $19.99 Discount: 30% off
23 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • What gRPC is, how it works, why we should use it, and where it is suitable to
  • The amazing HTTP/2 protocol that gRPC is built on
  • Compare gRPC with REST
  • Write and serialise protocol-buffer messages using Go + Java
  • Define gRPC services with protocol-buffer and generate Go + Java codes
  • Implement 4 types of gRPC using Go + Java: unary, server-streaming, client-streaming, bidirectional streaming
  • Handle context deadline, gRPC errors and status codes
  • Write production-grade application with interfaces and unit tests for gRPC services
  • Use gRPC interceptors to authenticate & authorise users with JWT
  • Secure gRPC connection with sever-side & mutual SSL/TLS
  • Enable gRPC reflections for service discovery
  • Load balancing gRPC service
  • Use gRPC gateway to generate RESTful service and swagger API
Course content
Expand all 24 lectures 06:01:52
+ Introduction to gRPC
5 lectures 18:04

Explore the motivation of gRPC, or what's the problem that it's trying to solve.

Preview 02:45

In this lecture, we’re going to learn exactly what gRPC is and how it works.

Preview 02:20

Code generation is one of the most important features of gRPC. In this lecture, we’re going to learn how it’s done with protocol buffer.

Preview 03:26

In this lecture, we will learn about HTTP/2 and what makes it great for gRPC.

Preview 04:47

In this lecture, we will discover some use cases of gRPC and how does it compare to REST.

Preview 04:46
+ Hands-on with protocol buffer
5 lectures 01:13:07

In this lecture, we will learn how to write a simple protocol-buffer message and generate Go codes from it with a simple Makefile.

Write a simple protocol buffer message and generate Go codes
09:08

In this lecture, we will learn much deeper about protocol buffer data types such as enum, repeated fields, one-of fields, and how to organise codes into packages.

Protocol buffer deep-dive and Golang package configuration
11:41

In this lecture, we will learn how to setup a Gradle project to generate Java codes from protocol buffer messages.

Config a Gradle project to generate Java codes from protocol buffer messages
11:13

In this lecture, we will learn how to use the generated Go codes to serialize protobuf message to binary and JSON.
We will also learn how to generate random data, write unit tests, and measure the code coverage of the tests.

Golang: Serialize protocol buffer message to binary and JSON
25:37

In this lecture, we will learn how to use the generated Java codes to serialize protobuf message to binary and JSON.
We will learn how to generate random data & use JUnit for testing.
We also prove that the binary file written by Golang in previous lecture can be correctly read by Java.

Java: Serialize protocol buffer message to binary and JSON
15:28
+ Implement 4 types of gRPC
8 lectures 02:44:18

In this lecture, we will learn how to implement unary gRPC request in Go, write unit test for it, handle errors, deadline, and status codes.

Golang: Implement unary gRPC
32:59

In this lecture, we will learn how to implement unary gRPC request in Java, write unit test for it, handle errors, deadline, and status codes.

Java: Implement unary gRPC
25:11

In this lecture, we will learn how to implement and test server-streaming RPC in Go.

Golang: Implement server-streaming gRPC
16:20

In this lecture, we will learn how to implement server-streaming RPC in Java.

Java: Implement server-streaming gRPC
11:55

In this lecture, we will learn how to implement client-streaming RPC with Go to upload files in multiple chunks.

Golang: Implement client-streaming gRPC
21:03

In this lecture, we will learn how to implement client-streaming RPC with Java to upload files in multiple chunks.

Java: Implement client-streaming gRPC
18:41

In this lecture, we will learn how to implement and test bidirectional-streaming RPC with Go.

Golang: Implement bidirectional-streaming gRPC
17:05

In this lecture, we will learn how to implement and test bidirectional streaming RPC with Java.

What we will build is the rate-laptop API that allows client to rate multiple laptops with a score, and receive back the average rated score for each of them.

Java: Implement bidirectional-streaming gRPC
21:04
+ Advanced features of gRPC
6 lectures 01:46:23

In this lecture, we will learn how to enable gRPC reflection on the server and use Evans client to play around with it.
gRPC reflection is an optional extension for the server to assist clients to construct requests without having to generate stubs. This is very useful for the clients to explore the gRPC API before actually going into implementation.

gRPC reflection and Evans client
07:08

In this lecture, we will learn how to implement gRPC interceptors to protect our APIs by user authentication and role-based authorisation with JSON web token (JWT).

gRPC interceptor is a middleware function that can be added on both server-side and client-side, which will be called before the actual handler is invoked. It can be used for multiple purposes such as logging, tracing, rate-limiting, authentication and authorisation.

Use gRPC interceptors for authentication with JWT
38:27

In this lecture, we will learn how to secure gRPC connection with server-side and mutual SSL/TLS in Golang. For server-side TLS, only the server needs to provide its TLS certificate to the client. While for mutual TLS, both client and server must provide their TLS certificates to the other.

I recommend you to watch these 2 videos before starting this lecture:
A complete overview of SSL/TLS and its cryptographic system: https://youtu.be/-f4Gbk-U758
How to create and sign SSL/TLS certificates with OpenSSL: https://youtu.be/7YgaZIFn7mY

Golang: Secure gRPC connection with SSL/TLS
11:20

In this lecture, we will learn how to secure gRPC connection with server-side and mutual SSL/TLS in Java. For server-side TLS, only the server needs to provide its TLS certificate to the client. While for mutual TLS, both client and server must provide their TLS certificates to the other.

I recommend you to watch these 2 videos before starting this lecture:
A complete overview of SSL/TLS and its cryptographic system: https://youtu.be/-f4Gbk-U758
How to create and sign SSL/TLS certificates with OpenSSL: https://youtu.be/7YgaZIFn7mY

Java: Secure gRPC connection with SSL/TLS
07:39

In this lecture, we will learn how load balancing gRPC service with NGINX. A large scale gRPC deployment typically has a number of identical backend servers, and a number of clients. Load balancing is used for distributing the load from clients optimally across available servers.

Load balancing gRPC service with NGINX
21:04

gRPC is not a tool for everything. There are cases where we still want to provide a traditional RESTful JSON API. In this video, we will learn how to use gRPC gateway to generate RESTful web service and its swagger API documentation. This enables us to write code just once but serving both gRPC and REST requests at the same time.

Generate RESTful service and swagger documentation with gRPC gateway
20:45
Requirements
  • You only need to have basic programming skills in Go or Java
  • You don't need to know protocol-buffer before, since we will learn deeply about it in this course
Description

If you're building APIs for your microservices or mobile applications, you definitely want to try gRPC.

It is super-fast, strongly-typed, and you no longer need to write a lot of boilerplate codes for services communication. Thanks to awesome HTTP/2 and Protocol Buffer!

This is a 4-in-1 course, where you will learn not only gRPC, but also protocol-buffer and backend development with Go and Java. The codes in this course are production-grade, with well-organised structure and unit tests.

Who this course is for:
  • Software engineers at all levels, who want to apply gRPC to their microservices or mobile applications
  • Software architects who wants to understands how gRPC works and where it should be used