RESTful Web API Design with Node.js - Second Edition
3.7 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
75 students enrolled
Wishlisted Wishlist

Please confirm that you want to add RESTful Web API Design with Node.js - Second Edition to your Wishlist.

Add to Wishlist

RESTful Web API Design with Node.js - Second Edition

Explore the practical side of REST to build data-centric applications with Node
3.7 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
75 students enrolled
Created by Packt Publishing
Last updated 4/2017
Current price: $10 Original price: $125 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 2.5 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Know what an API is and how it is used in client-server communication
  • Explore HTTP requests and responses and find out about the various fields that make up these requests and responses
  • Understand the architectural constraints and properties that make an API RESTful
  • Use Twitter’s API to tweet and search for tweets
  • Store Twitter’s data in our database to minimize the use of Twitter’s API
  • Use Async.js to handle Twitter’s API constraints
  • Test APIs using Postman and Apache Benchmark
  • Build the API on the server using Express.js and MongoDB
  • Find out about the Facebook Graph API, and its structure, resources, and permissions
  • Be introduced to GitHub API, its use of different representations, the PATCH verb, HATEOAS, and conditional requests
  • Get security tips to prevent session hijacking vulnerabilities
View Curriculum
  • Knowledge of REST or HTTP is not essential as this course provides all the background information required to get you started.

RESTful Web APIs allow developers to create unprecedented applications by leveraging the data on the internet. Since JavaScript is the language of the web, building APIs using Node.js provides a seamless development experience on both the front end and the back end.

This video course gives you an overview of a RESTful API and goes through the logical steps of building one. It explores three different APIs, focusing on their similarities and differences to effectively implement one.

We’ll start off by defining APIs, showing you how they can be built on top of HTTP, and listing the properties that make an API RESTful. We will develop Twitter Notes, a web application that lets its users leave notes for their Twitter friends. We will use Twitter’s API to implement a login flow and then design a web API. In addition to using Twitter’s API, we will take a closer look at two other real-world APIs—Facebook API and GitHub API. Finally, we’ll look at some best practices to keep the APIs secure, maintainable, and performing.

By the end of this course, you will have a good grasp of APIs, HTTP, REST, OAuth 1.0a, API testing, and site reliability, performance, and security. Since the course explores three different REST APIs, you will reach a level where you will be comfortable using any RESTful API, even if it does not have an SDK.

About the Authors

Saleh Hamadeh works as a full-stack software developer at Redfin, a startup that it is using technology to reinvent real-estate. Earlier in his career, Saleh worked at Yahoo! and BrainJocks. During his college years, Saleh served as president of gt-web dev, a Georgia Tech student organization that teaches web development. He is passionate about the future of the web and wants to continue to work and learn in this field.

Who is the target audience?
  • This video course is for Node.js developers who know JavaScript and are familiar with HTML and CSS.
Compare to Other Node.Js Courses
Curriculum For This Course
27 Lectures
REST Fundamentals
6 Lectures 30:06

This video provides an overview of the entire course.

Preview 02:25

The aim of this video is to define API in the context of this course. The video shows what an API is, what it is not, and how is it used in client-server communication.

What Is an API?

This video aims to give the viewers an introduction to HTTP by focusing on the parts that are used in RESTful APIs. The terms that are explained in this video will be used throughout the course.

Communication via HTTP

This video explains the three kinds of REST resources, the endpoint names of each kind, and the methods that can be applied to each endpoint.

Identifying REST Resources

APIs can run over HTTP and yet not be RESTful. This video covers the architectural constraints and properties that make an API RESTful.

Properties of RESTful APIs

This video deals with setting up the development environment so that we are ready to create our application.

Setting Up the Environment
Consuming a RESTful API
8 Lectures 48:16

This video deals with the problem of authentication in REST APIs on behalf of users. It presents an overview of OAuth, which is an open standard for authentication that is common in REST APIs.

Preview 05:45

This video deals with the data sources, directory structure, and code architecture

Sample Application Code Architecture

We want to create the OAuth authentication flow in our application. This video shows how to generate a request token, send users to Twitter to sign in, and get authenticated users back to our application.

Creating an OAuth Login Request

After user signed in to Twitter and authorized our application, the application now needs to get an access token to access the user’s Twitter profile and log the user in.

Getting an Access Token

Now that we have access to a user’s Twitter data, we need to use the data in our application. In this video, you will learn about Twitter’s API concepts, such as cursored collections and bulk APIs.

Exploring Twitter’s REST API

This video deals with viewing Twitter’s ids, designing asynchronous request handlers and implementing them

Accessing Cursored Collections with Async.js

In this vide, we will choose a database for our sample application. We will look at two different types of databases: relational databases and document-oriented databases. Then we’ll talk about how we would scale each type of database with our application. We will see how each of these types of databases integrates with node.js. And finally we will pick a winner.

Choosing a Database

Hitting Twitter’s API every time the app needs Twitter data is slow and can result in Twitter blocking our application. In this video, we will learn how to store Twitter’s data in our database to minimize the use of Twitter’s API.

Saving Data in MongoDB
Building a RESTful API
5 Lectures 37:44

The first step while building an API is to write the specifications. In this video, we will learn how to design the specifications from the data we have and the requirements that we want.

Preview 03:35

We know what the API should look like. Now we need to build it. In this video, we will define the API’s route handlers and call the API from the client to have a functional application.

Creating the API Handlers

Changing an API can break an application. For this reason, every API should have acceptance tests, which help prevent breaking apps. In this video, we will use Postman to write acceptance tests for our API.

Acceptance Testing with Postman

An API that serves one request per second cannot have the same infrastructure as one that serves thousands of requests per second. In this video, we will learn how to measure the capacity of our API and how to increase that capacity by utilizing multiple CPU cores.

Load Testing and Going Multicore

In this video, we will look at the other end of the application, the front end. We will start by looking at the key user moments in web applications. Then, we will look at how to test the user perceived performance using chrome dev tools and lighthouse.

Testing User-Perceived Performance
APIs in the Real World
3 Lectures 15:21

A single API structure cannot fit all applications. We will look at how Facebook structured its API as a social graph. By the end of this video, you will understand what the Facebook Graph API is and how to use it.

Preview 07:08

Some data needs time to be computed on the server. This makes the server slow under heavy load. In this video, we will see the approach that GitHub uses to keep its responses fast.

GitHub API

The primary use of APIs is to connect applications. We will look at IFTTT, the perfect example of doing just that.

Best Practices
5 Lectures 26:11

In this course, we’ve taken a pedagogical approach to explaining how APIs and authentication is done. In this video, we will look at the security issues with our API and what needs to be done to handle them.

Preview 03:45

APIs are designed to be used by other people. These users need an easy way to know the capabilities of an API without reading source code. In this video, we will take a look at the tools for generating API documentation.


Software requirements always change, and these changes should not break the apps or destroy the businesses of those using our APIs. API versioning helps us keep old clients compatible while providing new clients with all the new features.


Performance and bandwidth are limited, so we should use them as efficiently as possible. This video shows three ways of caching responses to help conserve bandwidth and maximize performance.


In this video, we will learn about the measures we can take to keep our website fast and reliable. We will start by looking at the API status pages of Twitter, Facebook, and Github.

About the Instructor
Packt Publishing
3.9 Average rating
8,229 Reviews
58,945 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.