
Explore the main web APIs—REST, GraphQL, and gRPC—in this complete guide, learn their concepts and best practices, compare pros and cons, and use a decision tree to migrate between them.
Target developers with backend experience, architects, and anyone interested in web API and software architecture to learn the differences among REST API, GraphQL, and gRPC.
Outline the course agenda, clarifying what an API is and what web APIs are, then explore Rest API, GraphQL, and gRPC, comparing pros, cons, and the decision tree.
Apply best practices for designing a well-designed api to satisfy developers as customers, ensure consistency and ease of use, and stand out from competitors while reducing support costs.
Define web APIs, highlight their platform-agnostic, http-based request-response model, and compare formats (json, xml) and types, including soap, rest, GraphQL, and gRPC.
Explore soap, the simple object access protocol built on XML for RPC style requests, with extensibility for authentication, routing, and transaction federation; learn when to use it with legacy endpoints.
Explore rest api, GraphQL, and gRPC as the most popular web api types, and learn how to select the right one for your needs.
Learn how rest transfers the representation of a resource's state between client and server via http requests and json representations.
Explore the anatomy of a REST API request by identifying the http verb, url, headers, and an optional body, with an example linking these components.
Explore the rest api response structure with status code, headers, and body; see a 200 json example of an order and note that json is preferred over xml or html.
Master the four primary http verbs—get, post, put, delete—to retrieve, add, modify, and remove resources, and apply the rules on body usage and query parameters.
Develop a self-explanatory, consistent API URL structure that uses nouns only and avoids verbs. Include versioning, ID parameters, and clear entity and sub-entity paths with optional query parameters.
Understand how REST API response codes signal request outcomes and guide client behavior, from 100 to 500, with common codes like 200, 201, 400, 404, and 500.
Implement a clear versioning policy for your api and expose versioning in the url or header—avoid query parameters, ensuring clients can upgrade safely.
Learn how hypermedia as the engine of application state embeds links to related resources in the root entity, letting clients navigate from the root endpoint to status via links.
Demonstrates a Rest API via a get request with a name query parameter, showing the json response and how to inspect headers, status 200, and network activity in developer tools.
Rest API uses HTTP verbs, response codes, and URL design to manage entities, enables a simple request–response model, and highlights pitfalls to avoid in design.
Examine the problems with REST, such as fixed entity structure and the request‑response paradigm, illustrated with an employee example, and explain how GraphQL resolves these issues.
Explore the history of GraphQL, developed by Facebook as an internal replacement for REST API, first used in 2012, open-sourced three years later, and now managed by the GraphQL Foundation.
Explore GraphQL as a specification, not an implementation, and learn how it defines the structure of returned data in JSON, supports retrieve, write or change data, and subscribe to changes.
Define the schema and the entities, specify the queries, optionally define mutations and subscriptions, and implement the logic for the queries, mutations, and subscriptions in GraphQL.
Define the schema with code or sdl, expose a graphql endpoint, and validate operations. Route queries to resolvers, execute field resolvers for scalar and object types, and return json results.
Compare gRPC with REST, outlining REST's performance limits, text-based JSON messaging, and request-response constraints, and explain why push notifications and action-driven APIs motivate gRPC.
Trace gRPC's origins from Google's open-source Stubby in 2015, and explore its design principles - promoting messages and services, not objects, with free, cross-platform performance and streaming.
Discover gRPC basics as an http/2 web API using protobuf for rpc-style communication, with streaming options and browser limitations.
Explore remote procedure call (RPC) in gRPC, where the client directly invokes server methods like get weather. Compare this to REST, which uses entity-based requests instead of method calls.
Explore the four gRPC communication styles—unary, client streaming, server streaming, and bidirectional—and how they enable telemetry, chat, notifications, and real-time data exchanges, with Protobuf next.
Explore gRPC error handling, contrasting its status codes with REST Http errors, and learn common gRPC statuses such as canceled, deadline_exceeded, unavailable, and internal.
Demonstrates gRPC in action using Postman, setting the gRPC server URL, invoking the say hello method, and exchanging protobuf-defined messages.
Compare gRPC with rest and GraphQL by focusing on action-based calls, client streaming, server streaming, and bidirectional streaming. Set up protobuf and compile server and client to implement gRPC.
Compare REST API, GraphQL, and gRPC across simplicity, flexibility, performance, push notifications, browser support, and semantics to help you choose the right web API for your needs.
Compare rest api, GraphQL, and gRPC with overview, pros and cons, and a flowchart to decide when to use each, equipping you to select the best api for your project.
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.
And currently, we have at least three popular Web APIs we can choose from:
REST API
GraphQL
gRPC
And choosing the best one for your web app is not easy. There are quite a few factors that should be taken into consideration when selecting Web APIs, and this decision usually cannot be reversed.
And this course does just that - it teaches you how to choose the best Web API for your web app.
In this course we're going to start from the basics, and learn about the basic concepts of each one of the web APIs. We'll understand what are its goals, why it was created, and which scenarios it serves best.
Then we'll compare these web APIs and see what are the pros and cons of each one.
And lastly - we'll take a look at the Web API Flowchart, which will guide you through the decision process of the web API to use.
There is no other course like this! This is the only course that compares the most popular web API and helps you make the most important decision in your web app design.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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.