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.
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.
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.
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.
APIs can run over HTTP and yet not be RESTful. This video covers the architectural constraints and properties that make an API RESTful.
This video deals with setting up the development environment so that we are ready to create our application.
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.
This video deals with the data sources, directory structure, and 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.
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.
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.
This video deals with viewing Twitter’s ids, designing asynchronous request handlers and implementing them
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.
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.
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.
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.
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.
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.
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.
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.
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.
The primary use of APIs is to connect applications. We will look at IFTTT, the perfect example of doing just that.
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.
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.
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.