Description

Have you ever wondered about how RESTAPIs work? Have you tried to understand all the components that are required to create RESTAPIs? Are you a developer coming from a Java/PHP/Perl/Python background but now interested in Node.js? Did you want to know how relational databases work? Or how NoSQLworks? How are they different – or even similar?Have you heard about JSONWebTokens and token based authentication but wasn’t sure how they work? Have you heard the latest buzzword GraphQLbut wondered how it works?Look no further — this course answers all your questions! It teaches the very basics ofRESTAPIs including its architecture and HTTPmethods, to adding relational database and/or NoSQLsupport while also covering authentication via tokens as well as GraphQL. As a bonus, Section 10 (Appendix B) has an entire section on how to implement the RESTAPI in an example application – including authentication for users.The course is broken up into 10 distinctive sections.SECTION1 – Introduction to RESTAn overview of the true basics of REST – including the architecture, HTTP methods and status codes and it also discusses why you’d want to develop a RESTAPI at the first place.SECTION 2 – Our first RESTAPI in Node.jsThis section takes a look at the basics around RESTAPI and implements a simple API service using Node.js without using any external dependencies (yes, it only uses some of the built-in Node.js modules)SECTION 3 – Express – a versatile web server for Node.jsIn this section we learn about Express – the most popular web server framework for Node.js. We learn how to install it, how to handle routes, how to utilise the Router object for advanced routing. Later on we also take a look at how to work with static files, how to utilise query strings and query parameters – we’ll implement these features later on when we create a RESTAPI.SECTION 4 – Relational Database Management SystemsIt is crucial to understand data storage before we can create a functional RESTAPI. This section shows us how to work with Relational DatabaseManagement Systems (MySQL, to be more precise) and also teaches us how SQLqueries work, and how to manipulate data.SECTION 5 – Create a RESTAPI using a Relational DatabaseIn this section of the course we learn about creating a RESTAPI instance where we utilise the previously gathered knowledge about relational databases. The course uses MySQL, the nativeMySQL driver but later on we change to Knex.js which is a SQL Query Builder for Node.jsSECTION 6 – Creating a RESTAPI using NoSQLThis part of the course takes a look at NoSQL – it introduces the student to NoSQLdatabases, compares them with Relational Databases. During this section we learn how to use MongoDB(the most popular NoSQLdatabase) and utilise it to create another RESTAPI.SECTION 7 – Securing a RESTAPISecurity plays an important factor in RESTAPIs. During this section we learn how token based authentication works, we get an introduction to JSONWebTokens (JWT) and we take the previously created two RESTAPIs – one that uses a relational database, and the other that uses a NoSQLdatabase – and we add JWTsupport for both.SECTION 8 – GraphQLGraphQL is gaining popularity and often times it is seen as a competitor for RESTAPIs. During this section we take a look at the basics of GraphQL and see how it can complement an existing RESTAPI. The videos in this section not only show us the basics but it also shows us how to add the previously implemented authentication to GraphQL.Section 9 (Appendix A) – ToolingThis section has a single video that introduces Insomnia – a tool that can be seen throughout the course for testing the RESTAPISection 10 (Appendix B) – Application creationAlthough not strictly related to RESTAPIs – this section teaches us how to create an application to consume the RESTAPI created throughout the previous sections of the course. It walks us through CORS and its importance, describes environment variables and finally creates a rudimentary application that allows us to register users, login/logout and check a secret profile – it essentially implements our API including JWTauthentication.