
Identify the main audience for this course: developers with back-end experience, architects, and anyone curious about web APIs and software architecture.
An API, the acronym for application programming interface, is a set of clearly defined methods for software components to communicate, with the interface exposed for other software to access data.
Explore why APIs matter for mobile apps and single-page web apps, enabling backend access, data exchange, reach extension, and monetization through standard, premium, and enterprise plans.
Design a well-designed api to satisfy developers as customers, ensure consistency and ease of use, and reduce support needs while beating competition.
Discover web APIs as platform-agnostic interfaces that communicate via HTTP request and response. Compare SOAP and REST, GraphQL, and gRPC by their request and response formats, including JSON and XML.
Discover representational state transfer, an entity-centric web API built on the http standard, using urls for entities and json responses to perform create, read, update, and delete.
Explore GraphQL as a flexible web API, enabling precise field selection, parameterized queries, and real-time subscriptions, with pros and cons versus REST, including upfront development and potential performance trade-offs.
Explore gRPC as a key web API, with this course discussing it in depth and outlining the basics of gRPC.
Explore gRPC basics as a web API on http/2, delivering rpc-style communication with streaming modes, including bi-directional and client-server streaming, and note browser limitations and backend workarounds.
Learn how gRPC uses a remote procedure call style to invoke specific server methods from a client, contrasting it with REST which targets resources via URLs.
Explore the protocol data format used by gRPC, a binary alternative to JSON, defined in proto files, and learn how client code serializes messages for cross-language support.
Install and configure VS Code, pin it for quick access, and install the Microsoft C# extension to enable dot net development for building the gRPC web APIs project.
Design and build a fully functional gRPC app utilizing all its major features, built on dot net and Node.js, guided from installation to testing and usage.
Explore the g room app architecture: a chat room with a news bot and admin console, powered by a gRPC server with client streaming, bidirectional streaming, and server streaming.
Learn how gRPC uses protocol buffers as the binary, efficient serialization for client–server messages, and compare its formats to rest, GraphQL, and soap, with cross‑language support for major languages.
Explore the protobuf usage flow: define messages and services in proto files, generate language-specific code with the protocol compiler, and serialize and exchange messages across languages.
Discover the protocol message syntax using proto files, defining messages and services with camel case names, unique field numbers, repeated and nested fields, enums, packages, imports, and comments.
Explore default values in protocol buffers: strings become empty, bytes are empty, bools false, numbers zero, and enums default to the first zero-valued option, demonstrated with a marital status example.
Learn how to define and populate a composite address type for an employee, setting city, street name, and house number, and noting an omitted zip code.
Follow rules to update a message type in gRPC: never change field numbers, allow new fields, and avoid reusing removed numbers, while keeping type changes compatible with utf-8 data.
Define maps as a protocol field, like a hash table or dictionary with unique string or integral keys. Use a relatives map to add entries and inspect keys and values.
Create and configure a .NET gRPC server using the template, define a room registration proto, adjust the project to generate room messages, and prepare the gRPC service for room registration.
Implement the g room service in a gRPC server by importing its file and proto definitions, wiring the register to room method, updating program.cs, and testing.
Test gRPC services with Bloom RPC by connecting to the local server, loading the proto file, and sending register to room requests to verify responses and unary calls.
Introduce unary RPC in gRPC by implementing a chat room registration client where an end user sends a request and receives a response, either synchronously or asynchronously.
Explore client-side streaming in gRPC, where the client opens a channel and sends continuous messages to the server. The news bot illustrates how the server handles this stream.
Learn how to implement client side streaming in gRPC by adding newsflash messages, server methods, and a streaming client test with Bloom RPC, validating end-to-end flow.
Develop a Node.js gRPC client that streams news items to a server, using a proto file, proto loader, and a set interval to send ten items over a streaming RPC.
Web API is usually the most important part in a web app.
This is how you expose your web app to the world, and to other users, and it must be fast, easy to use, and up-to-date.
gRPC is one of the most advanced and exciting web APIs in the industry today, and it adds a lot of value to any web app. Capabilities such as server and client streaming, strongly-typed messages, blazing-fast performance and more make it an important asset in every developer and architect toolbox.
And this practical, hands-on course will make you an expert in gRPC.
We are going to cover all aspects of gRPC, from the very basics to the most advanced topics.
Here are some of the topics we're going to discuss:
- How gRPC stacks against REST API
- Basic concepts of gRPC
- The 4 communication types of gRPC:
- Unary RPC
- Client-side streaming
- Server-side streaming
- Bi-directional streaming
- Best practices of designing gRPC API
- Using Protobuf, the message serialization format used by gRPC
- Error handling in gRPC
- Authorization and Security
And lots more.
Now, in order to make this course as valuable as possible, I made it extremely practical and hands-on.
We're going to build, together, a fully-functional, full-blown gRPC-based chat app, utilizing all the concepts we'll learn in the course, and we're going to use multiple platforms for that - nodeJS and .NET.
Note: You don't have to be a .NET or nodeJS developer to take this course. I'm going to guide you through all the steps in the development process, and make sure everything will work as expected.
By the end of this course, you'll be an expert in gRPC, not just in theory, but in practicality.
There is no other course like this! This is the only course that will take you all the way to be an expert in gRPC, from the very beginning to topics known to few, and will do that in an extremely practical and hands-on fashion.
----------------------------------------------------------
What do my students have to say about my courses?
------------------------------------------------------------
"well done - The course was very practical" - Sam
"Good explanation on the topics covered, "Soft Skills" section is a great addition of topics" - Sergio
"[The course] given me the confidence to go out to the market and advertise myself as such [an Architect]" - Mathew
"Life Changing" - Arivazhagan
And lots more...
------------------------------------------------------------
Who is this course for?
------------------------------------------------------------
Any person who is involved in web development, even system analyst, can profit from this course.
That includes:
- Junior developers
- Senior developers
- Architects
- Anyone else involved in web development
If you're not sure if this course is for you - drop me a note!
------------------------------------------------------------
What are the prerequisites for this course?
------------------------------------------------------------
Students are expected to be able to understand code , and to know how the internet is working (HTTP protocol, Request / Response model, and so on).
------------------------------------------------------------
About Me
------------------------------------------------------------
I've been in the software industry for more than 25 years, and a Software Architect for more than 20 years, working with a variety of clients - Fortune 100 enterprises, start-ups, govt. entities, defense, telco, banking, and lots more.
I'm an avid speaker and trainer, having trained thousands of students in various courses.
I love what I do, and my greatest passion (well, besides my family...) is designing modern, practical, and reliable systems for my clients, using the best possible API.