Building APIs with Node.js
Last updated on 2016-02-10
About the Book
Attention: This books is no longer for sales here, now you can buy it via Apress website, take a look: http://www.apress.com/br/book/9781484224410
Currently, we live in a period in which the majority of users use different types of devices to connect to the internet. The most popular devices are smartphones, tablets and notebooks. Developing systems for different types of devices requires the work of building web services, also known by the name of API (Application Program Interface).
Basically, the APIs are back-end systems that are designed to work only with data in a centralized manner, allowing client-side applications to be developed separately, to have a unique interfaces to the final user. These client-side applications are typically mobile apps, desktop applications or web apps.
There are some cases of large companies, such as LinkedIn and PayPal, which significantly saved expenses with servers migrating some of their projects to Node.js.
In this book, you'll learn in practice how to build scalable APIs in Node.js platform through writing elegant codes using ECMAScript 2015 (aka ES6) and some popular frameworks like Express, Passport, ApiDoc, Mocha, Helmet and more.
See also the portuguese version of this ebook: Construindo APIs com Node.js
If you desire to take you Node skills to the next level, then Caio’s book is for you! As an experienced software developer, I had many questions regarding how to build an enterprise grade Node application. However it's almost impossible to find a book with real working examples of how to deal with security, API doc, testing, project structure, best practice patterns. Caio addresses these head on. For just the price of a few lattes, you have a cookbook to take your Node skills to the next level!
- The current web application scene
- Who is this book for?
- How should I study it?
Introduction to Node.js
- What’s Node.js?
- Main features
- Why do I need to learn Node.js?
Setting up the environment
- Node.js standard installation
- Node.js installation via NVM
Managing modules with NPM
- What does NPM do?
- Top NPM commands
- Understanding package.json file
- NPM Task automation
Building an API
- Introduction to Express
- Getting started the pilot project
- Implementing a simple and static resource
- Arranging the loading of modules
Working with SQL databases
- Introduction to SQLite3 and Sequelize
- Setting up Sequelize
- Creating models
CRUDify API resources
- Organizing tasks routes
- Listing tasks via GET
- Creating tasks via POST
- Finding a task via GET
- Updating a task via PUT
- Deleting a task via DELETE
- Refactoring some middlewares
- Creating user’s endpoints
- Testing endpoint’s access using Postman
- Introduction to Passport.js and JWT
- Installing Passport and JWT
- Implementing JWT authentication
- Generating tokens for authenticated users
Testing the application - Part 1
- Introduction to Mocha
- Setting up the test environment
- Testing the authentication endpoint
Testing the application - Part 2
- Testing task’s endpoints
- Testing user’s endpoints
Documenting the API
- Introduction to ApiDoc.js
- Documenting token generation
- Documenting user’s resource
- Documenting task’s resource
Preparing the production environment
- Introduction to CORS
- Enabling CORS in the API
- Generating logs
- Configuring parallel processing using cluster module
- Compacting requests using GZIP middleware
- Installing SSL support to use HTTPS
- Armoring the API with Helmet
Building the client-side app - Part 1
- Setting up the app environment
- Creating signin and signup views
- Writing signin and signup components
Building the client-side app - Part 2
- Views and components for task’s CRUD
- Views and components for logged users
- Creating the main menu
- Treating all screen’s events
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms...